Boris, thanks again for the recommendation.

This should net two skills in one pass: 1. learn lisp (by writing new lisps!) and 1. grok the VM language. 

I spent the morning grokking the outline of the book/tasks

* The Basics of Interpretation
* Lisp, 1, 2, ....w
* Escape & Return Continuations
* Assignment and Side Effects
* Denotational Semantics
* Fast Interpretation
* Compilation
* Evaluation and Reflection
* Macros: Their Use and Abuse
* Compiling into C
* Essence of an Object System


The chapter on defining a LISP in Lambda Calculus looks very, very interesting..."if the math works, the program works, if not, not." may be naive, but removing ambiguity appeals to me.

Hopefully, after doing the work I can begin to contribute at a systems level instead of the "application developer level" I am in.

cordially,

t




---- On Sun, 24 Sep 2023 12:48:56 -0400 Boris Shingarov <boris@shingarov.com> wrote ---


I think the confusion results from believing random pages on the Internet:

> states that they are synonymous with stack-frames
If ALL the guy has seen is Algol-68 (which I mean inclusively, i.e.
counting dialects like BCPL, C, etc) then yes, because *in those
languages* there is no need to be conscious about the difference between
activation records and stack frames.  But if the language provides
reification of execution, activation records are perennial objects, i.e.
they can outlive the activation. Therefore they can't be stack frames --
otherwise at the end of the activation they are garbage.  So, very old
Smalltalks allocated activation records on the heap, these are called
"Contexts"; but this is much slower than stack frames.  OOPSLA99 talks
exactly about how to [internally] represent contexts on the stack but
still enjoy them behave correctly as perennial objects.

So, OOPSLA99 is correct.

> pointers for more basic reading on this stuff would be helpful
Hmmm... good books on higher-order programming languages count in the
hundreds, so I guess it depends on what you are into.  Still, one
excellent book is "LISP in Small Pieces" by Christian Queinnec.  Also
the paper "The Essence of Algol" by John C. Reynolds immediately comes
to mind.