Higher-order Multidimensional Programming by John Plaice

Lambda Montreal
Lambda Montreal
Public group
Location image of event venue


In 1975, William W. Wadge and Edward A. Ashcroft introduced the language Lucid, in which the value of a variable was a stream. The successors to Lucid took two paths.

The first path, taken by Lustre, was to restrict the language so that a stream could be provided with a timed semantics, where the i-th element of a stream appeared with the i-th tick of the stream's clock, itself a Boolean stream. Today, Lustre is at the core of the Scade software suite, the reference tool for avionics worldwide.

The second path was to generalize the language to include multidimensional streams and higher-order functions. The latest language along this path is TransLucid, a higher-order functional language in which variables define arbitrary-dimensional arrays, where a multidimensional runtime context is used to index the variables.

The presentation will focus on the key problems pertaining to design, semantics and implementation of Lustre and TransLucid, including how the two can interact.

Bio: John Plaice (BMath, Waterloo; PhD, Habilitation, Grenoble) is Senior Scientist with GrammaTech (Ithaca, NY). He also holds an Adjunct position at UNSW Australia (Sydney). He lives in Montreal.