Sat Mar 15 09:09:15 EDT 2008
the design choices
* use syntax objects for everything that represents code. this gives
the best match to PLT scheme: it allows to use most of the
underlying machinery in the way it integrates well.
- representation: lambda + redefinable language structure
- namespaces: modules and units
- compile/interpret: use the scheme expander instead
in retrospect, this took a long time for me to understand, but it
looks like i'm finally getting it. identifier scope management
(lexical, dynamic, module, unit) is hard. if somebody does it for
you, then use it!
* syntax streams: are these really necessary? they complicate things
due to having to deal with both lists and streams. maybe, when
everything is syntax and usable as scheme macros, streams are no
it looks like the more important choice is going to be to have a
complete map from text -> binary code / assembly code that lives in
the syntax domain.