Leverhulme Lecture Series

During the academic year 2010-2011, Professor Hendren was on sabbatical leave at the University of Oxford, during which time she held a Leverhulme Visiting Professor position. As part of the position she presented a series of three Leverhulme Lectures. The lectures and slides are listed below:

Lecture #1

  • Title: Compiler Tools for MATLAB
  • Presentation Date: Friday, June 10, 2011
  • Abstract:
    MATLAB is a popular dynamic programming language used for scientific and numerical programming. As a language, it has evolved from a small scripting language intended as an interactive interface to numerical libraries, to a very popular language supporting many language features and libraries. The overloaded syntax and dynamic nature of the language, plus the somewhat organic addition of language features over the years, makes static analysis of modern MATLAB quite challenging.

    In this talk I will motivate why it is important for programming language and compiler researchers to work on MATLAB and I will provide a high-level overview of McLab, a suite of compiler tools my group is developing at McGill. The main technical focus of the talk will be on the foundational problem of resolving the meaning of an identifier in MATLAB.

  • Slides: (PowerPoint) --- (.pdf slides) --- (.pdf handouts)

Lecture #2

  • Title: Language Extensions for MATLAB
  • Presentation Date: Friday, June 17, 2011
  • Abstract:
    The MATLAB language has evolved over the years to include many language features, including objects. In this talk I will present two new language extensions, loosely based on aspects.

    The first part of the talk reviews the extensible nature of the McLAB toolkit and introduces our MetaLexer approach in more detail.

    The second part of the talk introduces AspectMatlab, an aspect-oriented version of MATLAB. AspectMatlab has been implemented using the McLab framework and I will present the key language constructs and several examples of applying aspects to typical MATLAB applications. Time permitting, I will also present a second extension which is "Typing Aspects", a "wild west" approach to adding typing to MATLAB. The key ideas and motivating examples demonstrate the idea.

  • Slides: (PowerPoint) --- (.pdf slides) --- (.pdf handouts)

Lecture #3

  • Title: McLAB: A Toolkit for Static and Dynamic MATLAB Compilers
  • Presentation Date: Friday, July 1, 2011
  • Abstract:
    McLAB is a compiler and virtual machine toolkit for developing new language extensions, compiler optimizations and transformations, and new static and dynamic compilers for MATLAB. In this talk I will concentrate on the back-ends, examining both static and dynamic compilation.

    In the first part of the talk I will present our approach to designing a virtual machine and Just-In-Time (JIT) compiler for MATLAB, and in the second part of the talk I will give an overview of our approach to translating MATLAB to FORTRAN95.

  • Slides: (PowerPoint) --- (.pdf slides) --- (.pdf handouts)