A rough sketch of a book. Very rough.

  1. ADT and GC in Forth. A few simple apps.
  2. Frames. Parser and printer.
  3. Parser and printer for s-exprs.
  4. Simple interpreters, in Forth. Just function definition (LAMBDA) and application.
    Define bools using functions, numbers using Church numerals.
    Lexical and dynamic scoping, hyperstatic etc.
  5. Add true bools and numbers, QUOTE, IF, SET! and global variables.
    Add the macro hook, DEFINE and DEFINE-MACRO.
    Add a few derived features, like LET.
  6. Macro writing macros. BACKQUOTE and SETF.
  7. Tail recursion. Continuations (CPS transformation) and multiple values.
  8. Multitasking using continuations.
  9. Pattern matching and a rule based language.
  10. Lazy evaluation. DELAY and FORCE.
  11. Backtracking and a simple logic based language.
  12. Simple compiler for primitive syntax, without continuations.
    Compile to threaded code.

I doubt I'll ever write it, of course. I'd rather write code than write about code.