Higher-order Multidimensional Programming

J. Plaice,Jarryd P. Beck
Abstract: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. At the core of the design of functions is the intension abstraction, a parameterless function whose body is evaluated with respect to the context in which it is used and to part of the context in which it is created. 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 paper demonstrates that the higherorder functions over infinite data structures—even ones that are curried—can be statically transformed into equivalent functions directly manipulating the context, thereby replacing closures over parts of the environment by closures over parts of the context.
What problem does this paper attempt to address?