Module overview
Aims and Objectives
Learning Outcomes
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Design ASTs to capture a target language or DSL
- Develop AST re-writing algorithms to transform and optimise code
- Construct grammars to parse existing languages
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Implement a parser for a context-free language
- Develop test and verification infrastructure to support development and optimisation
- Create a compiler from an existing imperative language to a given instruction set
- Create a source-to-source code translator
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- Identify the advantages and disadvantages of compiler, interpreted, and embedded languages.
- Theory of grammars and parsing automata
- Describe common compiler optimisations and predict how it might affect high-level code.
- Explain how high-level language constructs are lowered into instruction sequences
Syllabus
Languages:
- Grammars (follows on from RegEx in yr1)
- Parsers
- ASTs
Language processors:
- Interpreters
- Transformers (source to source)
- DSLs and Metaprogramming
Compilation:
- Mapping expression evaluation into instructions
- Converting control-flow statements into instructions
- Functions, stacks, and frames
Modern compilers:
- Optimisation
- Register allocation
- Intermediate Representations
- Basic Blocks & SSA
Learning and Teaching
Teaching and learning methods
- Lectures
- Guided self-study
- Computing labs
Type | Hours |
---|---|
Completion of assessment task | 80 |
Independent Study | 28 |
Lecture | 32 |
Specialist Laboratory | 10 |
Total study time | 150 |
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Class Test | 10% |
Computing assignment | 20% |
Computing assignment | 50% |
CAA Exam | 20% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
CAA Exam | 30% |
Coursework | 70% |