Simple functional languages like LISP are useful for exploring novel semantics and composition mechanisms. That usefulness can be limited by the assumptions built into the evaluator about the structure of data and the meaning of expressions. These assumptions create difficulties when a program introduces a composition mechanism that differs substantially from the built-in mechanism of function application. We explore how an evaluator can be constructed to eliminate most built-in assumptions about meaning, and show how new composition mechanisms can be introduced easily and seamlessly into the language it evaluates.
Updated, full version | TBD |
Published version | freeco11-piumarta-oecm.pdf |
Dynamic programming languages seem to spend much of their time looking up behaviour associatively. Data structures in these languages are also easily expressible as associations. We propose that many, and maybe even all, interesting organisations of information and behaviour might be built from a single primitive operation:~n-way associative lookup. A fast implementation of this primitive, possibly in hardware, could be the basis of efficient and compact implementations of a diverse range of programming language semantics and data structures.
Published version | freeco11-piumarta-abmdb.pdf |