This talk presents the TransLucid language, in which a variable is an array of arbitrary rank (number of dimensions) and extent (number of cells). To refer to a specific cell, the variable is accessed using the current context, which is a set of (dimension, ordinate) pairs. This is exactly the idea behind Descartes’ analytical geometry, so this style of programming is called Cartesian programming.
A useful way to visualise Cartesian programming, initially, is to consider a (hypothetical) spreadsheet based on these ideas. The entire spreadsheet could be considered to be a single TransLucid variable, with dimensions such as row, column, sheet and time, and possibly many others. One or more equations would define this variable, and these equations could refer, if necessary, to these dimensions to reach neighbouring cells.
This talk will focus on the design, semantics and implementation of higher-order dimensionally-abstract functions in TransLucid. The new interpreter for TransLucid, written in Haskell, will also be presented, and illustrated with a number of examples.
Background to the presentation can be found at cartesianprogramming.com.
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.
7:00pm–8:00pm (approximately): presentation