Sat Jan 18 20:58:48 CET 2020
I get stuck very quickly. Too many issues at once.
- I can't see the consequences of implementing higher order functions,
so implement only higher order "forms", such as iteration. This can
be just goto.
- However, I still want function calls to properly abstract over
Can I do this instead with abstract inerpretation?
Execute the program, produce a trace, and from the trace produce the
stack data structures.
Insisting on ANF and closures will make it too difficult to keep C
Just a stack. Nothing fancy.
Start with what can be done using a stack:
- Non tail call function application (append to stack, hide).
- Non tail call "form inline" (append to stack, keep context)
- Tail call: replace part of stack
- Tail call "form inline" (same, keeping context).
These are 4 operations.
- form inline
- tail call
- "hiding" is only necessary when it is possible to have name clashes.
- inlined forms are interesting, elaborate on that