Compilers & Computer Architecture (G5035)
Compilers and Computer Architecture
Module G5035
Module details for 2022/23.
15 credits
FHEQ Level 5
Pre-Requisite
Further Programming or ability to program in Java.
Library
Modern Compiler Implementation in Java, by Andrew Appel and Jens Palsberg.
Compilers - Principles, Techniques and Tools, by Alfred V. Aho,Monica Lam, Ravi Sethi, and Jeffrey D. Ullman.
Engineering a Compiler, by Keith Cooper, Linda Torczon.
Basics of Compiler Design by Torben Mogensen.
Computer Architecture - A Quantitative Approach by John Hennessey and David Patterson.
Module Outline
This module will discuss the key ideas in implementation of compilers
for modern programming languages such as Java, including lexical
analysis, parsing, semantic analysis based on types and type checking,
syntax-directed translation using abstract syntax trees, intermediate
languages, and code generation. We will also discuss run-time issues
such as garbage collection. Along the way we will look at key ideas in
processor architecture such as stack machines and register machines,
RISC vs CISC processors and processor caching.
Module learning outcomes
Explain the structure of a conventional compiler, showing the interfaces between the phases.
Use formal syntactic specifications for common high-level language constructs in the construction of the analysis phase of a compiler.
Implement modules of a complete compiler for a simple source language and a simple target architecture.
Explain the key characteristics of the instruction set of a simple modern processor and illustrate how it can be used in compiler-generated code.
Type | Timing | Weighting |
---|---|---|
Coursework | 50.00% | |
Coursework components. Weighted as shown below. | ||
Project | T1 Week 11 | 100.00% |
Computer Based Exam | Semester 1 Assessment | 50.00% |
Timing
Submission deadlines may vary for different types of assignment/groups of students.
Weighting
Coursework components (if listed) total 100% of the overall coursework weighting value.
Term | Method | Duration | Week pattern |
---|---|---|---|
Autumn Semester | Class | 1 hour | 11111111111 |
Autumn Semester | Lecture | 1 hour | 22222222222 |
How to read the week pattern
The numbers indicate the weeks of the term and how many events take place each week.
Please note that the University will use all reasonable endeavours to deliver courses and modules in accordance with the descriptions set out here. However, the University keeps its courses and modules under review with the aim of enhancing quality. Some changes may therefore be made to the form or content of courses or modules shown as part of the normal process of curriculum management.
The University reserves the right to make changes to the contents or methods of delivery of, or to discontinue, merge or combine modules, if such action is reasonably considered necessary by the University. If there are not sufficient student numbers to make a module viable, the University reserves the right to cancel such a module. If the University withdraws or discontinues a module, it will use its reasonable endeavours to provide a suitable alternative module.