By now students will have seen and used a variety of programming languages. In this module they will also understand the principles behind their design along with techniques for transforming human-friendly programs into machine-friendly sets of instructions. This module introduces some of the central ideas and techniques in the study of programming languages, from syntactic and semantic specification to compilation. Both the syntax (parsing) and semantics (operational semantics, abstract machines) will be covered. Students will also see how types can be used in compilers to prevent certain catastrophic errors (“type safety”).
Learning Outcomes
By the end of the module students should be able to:
Understand the principles behind parsing
Understand operational semantics and abstract machines
Understand the principles of code optimisation and generation
Understand the use of types to guarantee safety properties