Read the paper by Reynolds (1972) up to and including section seven. Later sections are delightful as well, but less relevant to the course. Section one can be skimmed, but it nicely sets up the scene. He talks about Algol a lot. For the unfamiliar it is the archetype of block structured programming languages e.g. C, but unlike C it has some high-order function support.
This is a great paper in computer science. Apart from historical value, it is also what the lecturer basis his interpreter upon. It will allow you to deeply understand how and why we bother with defunctionalisation & continuation passing style.
I strongly suggest you read it before you attempt the rest of the workset.
CPS and defunctionalisation exercise sheet (from the course site)
Posted on February 13, 2023
by Mistral Contrastin
Compiler Construction Example Sheet II
Reynolds, J.C., 1972. Interpreters for higher-order programming languages, in: Proceedings of the ACM Annual Conference-Volume 2. ACM, pp. 717–740.