Explain what this is and how it works. Explain how the concept of a coroutine fits in this discussion. Putting procedure activation records on the heap instead of the stack allows for easier implementation of functions as first-class objects in a programming language. Explain why this is so by sketching out an implementation. Be sure to handle the issue of reclaiming activation records that are no longer needed.
Some people distinguish between syntax, static semantics and dynamic semantics.
Give reasonable definitions that distinguish between these terms. Other people say there is no such thing as static semantics and all static properties are syntactic. Give arguments to support this viewpoint. Discuss how attribute grammars relate to this question. Consider adding automatic storage reclaimation to C and to Pascal.