In this lecture we revisit code generation for functions, including:
Then we have a brief look at the compilation of control-flow statements and string constants, discuss boxed vs unboxed representations of primitive values, and discuss the execution environment of a language consisting of the implementation of built-in functions.
In the last part of the lecture we study memory safety, automated memory management, and several garbage collection algorithms.