Sun Mar 29 13:21:07 CEST 2009

The purpose of Coma

Rehash of the ideas behind the to-be Coma layers.

         - conditional + tail recursion  for control flow
         - first order functions (no lambda)
         - higher order macros and structured parameterization.

I would like to take the approach of "mandatory deforestation".  Write
a language+metalanguage with compile-time only data structures, and
allow compilation of expression _only_ when complete deforestation
(elimination of _all_ data structures at compile time) is possible.
This leads to the following slogan:

         Staapl eliminate lists and lambdas.

The target machine should then be simple such that it does not need
garbage collection (i.e. make it linear) and even further: not need
stacks or linear trees either.  If I'm correct this is somewhat
related to the Hume project - a hierarchy of machines:

        1. finite state machines
        2. FSM + stacks (push down automata / linear structures)
        3. cons cells + lambda (needs garbage collection to implement)

Lambda is really the code equivalent of a cons cell: lambda conses
static code templates with an environment structure.