Fri May 8 14:44:26 CEST 2009
lazy partial evaluation
I'm trying to find the proper type of lazy evaluations in Staapl,
inspired by . Something like this:
(([mw a] [mw b] +) ([mw (macro: ,a ,b _+)]))
(([qw a] delay) ([mw (macro: ',a)]))
(([mw m] force) m)
Here _+ is the stict one from pic18.ss
To use this in the strict (macro: ...) form do something like:
1 delay 2 delay + force
Now, what I wonder is how this can be used to separate all compile
time computations (manipulation of qw's) from target compilation
(using target machine code only).
There is one thing though that I didn't do yet from : I made
closures, but not abs's. "Indirections represent a logical reordering
of the stack, and are used to model bound variables."
What I don't quite understand is why this needs to pop the element
Anyways: a basic idea is that if you use a stack and start to reorder
operations on it, you had better kept track of the original positions
of the operations.