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.