32th Logic Seminar
Higher-order Multidimensional Programming
John Plaice

Associate Professor
School of Computer Science and Engineering
The University of New South Wales
Sydney NSW 2052 Australia

2012-03-15 15:00-17:00

Seminar room of the RCIS, 3. floor

We present a higher-order functional language in which variables define arbitrary-dimensional entities, where any atomic value may be used as a dimension, and a multidimensional runtime context is used to index the variables. We give an intuitive presentation of the language, present the denotational semantics, and demonstrate how function applications over these potentially infinite data structures can be transformed into manipulations of the runtime context. There are two kinds of functional abstraction and application: call-by-value (eager evaluation) is used to pass dimensions and constants, while call-by-name (lazy evaluation) is used for passing multidimensional variables.

The multidimensional space can be used for both programming and implementation purposes. At the programming level, the informal presentation of the language gives many examples showing the utility of describing common computing entities as infinite multidimensional data structures.

At the implementation level, the main technical part of the talk demonstrates that the higher-order functions over infinite data structures - even ones that are currieed - can be statically transformed into equivalent functions directly manipulating the context, thereby avoiding the need for closures over parts of the environment.

Contact Person

Norbert Preining