Compilers, interpreters and assemblers; formal grammars; lexical analysis, syntax analysis, predictive parsing; symbol tables and semantic analysis; code generation, optimisation and run-time environments.
Learning Outcomes
Describe the phases of program translation from source code to executable code and the files produced by these phases
Recognise the underlying formal models such as finite state automata, push-down automata and their connection to language definition through regular expressions and grammars
Explain the benefits of intermediate languages in the compilation process
Describe the steps and algorithms used in code generation
Describe how the computer system uses activation records to manage program modules and their data
Describe approaches to object lifetime management (e.g. garbage collection) and evaluate tradeoffs between different strategies