Declarative Computation, Syntactic Sugar, and the Abstract Machine
michaelrbernste.in
michaelrbernste.in
Chapter 01: http://michaelrbernste.in/2013/02/19/CTM-chapter-01.html
On the paper that sums up the pedagogy: http://michaelrbernste.in/2013/02/23/notes-on-teaching-with-...
The first time I understood this fairly ubiquitous kernel-like language was from his papers, which I think spell it out more clearly than the usual lambda-calculus papers do. I do wish that more languages took after this style as the existing ones rarely take advantage of the quality that you can get from complex compilation analysis. I have not, for example, found one that is not dynamic, although many of them tend to be little more than a prettier and slower Erlang or, for the really good ones, a prettier, slower and less-safe Esterel. Instead, they are more Lisp-like, which is also technically declarative but are far harder to reason about temporally and therefore more complex to write and optimize.