Compilers and Computer Architecture (G5035)
15 credits, Level 5
Topics on this module include:
- low-level versus high-level languages
- an introduction to language implementation techniques, compilers and interpreters, grammars and parsing
- hardware implications, instruction set design and implementation
- lexical analysis
- the relevance of finitestate automata and regular grammars
- implementation techniques
- problems for particular languages, syntax analysis overview of grammars and parsing techniques
- top-down and bottom-up parsing
- predictive parsing, shift-reduce parsing
- implementing hand-coded top-down predictive parsers
- semantic analysis and code generation from trees and from flat intermediate codes
- symbol tables
- type checking
- handling of specific high-level language constructs
- runtime storage allocation and scoping
- instruction set consequences
- hardware aspects of performance enhancement caches, pipelining and parallelism
- recent developments in processor design
- code optimisation
- introduction to flow analysis.
Teaching and assessment
We’re currently reviewing teaching and assessment of our modules in light of the COVID-19 situation. We’ll publish the latest information as soon as possible.
Contact hours and workload
This module is approximately 150 hours of work. This breaks down into about 42 hours of contact time and about 108 hours of independent study. The University may make minor variations to the contact hours for operational reasons, including timetabling requirements.
This module is running in the academic year 2021/22. We also plan to offer it in future academic years. However, there may be changes to this module in response to COVID-19, or due to staff availability, student demand or updates to our curriculum. We’ll make sure to let our applicants know of material changes to modules at the earliest opportunity.
It may not be possible to take some module combinations due to timetabling constraints. The structure of some courses means that the modules you choose first may determine whether later modules are core or optional.
This module is offered on the following courses: