Module overview
Aims and Objectives
Learning Outcomes
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Construct grammars to parse existing languages
- Design ASTs to capture a target language or DSL
- Develop AST re-writing algorithms to transform and optimise code
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Develop test and verification infrastructure to support development and optimisation
- Create a source-to-source code translator
- Create a compiler from an existing imperative language to a given instruction set
- Implement a parser for a context-free language
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- Describe common compiler optimisations and predict how it might affect high-level code.
- Theory of grammars and parsing automata
- Explain how high-level language constructs are lowered into instruction sequences
- Identify the advantages and disadvantages of compiler, interpreted, and embedded languages.
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 |
---|---|
Lecture | 32 |
Specialist Laboratory | 10 |
Completion of assessment task | 80 |
Independent Study | 28 |
Total study time | 150 |
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Computing assignment | 20% |
CAA Exam | 20% |
Class Test | 10% |
Computing assignment | 50% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Coursework | 70% |
CAA Exam | 30% |