Wed Nov 30 10:11:42 EST 2016
Abstraction, compilation, caching
To allow high abstraction, one needs:
- compilation (meta-programming)
- proper caching of compilation results
Compilation translates high level description into low level
implementation, and can be (and should be?) towered.
- infinite memory model with garbage collection, closures,
continuations, tasks and type systems that eliminate meaningless
- state machines, cached code and data (obtained from higher level
Note that compilation allows (target) code and data to be treated in
similar ways: functionality can be partitioned into interpreter and
data in arbitrary ways that suit the requirements of the
representation (usually trading off execution speed and memory usage).