ºÚÁÏÍø

School of Engineering and Informatics (for staff and students)

Compilers & Computer Architecture (G5035)

Note to prospective students: this content is drawn from our database of current courses and modules. The detail does vary from year to year as our courses are constantly under review and continuously improving, but this information should give you a real flavour of what it is like to study at ºÚÁÏÍø.

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.

Compilers and Computer Architecture

Module G5035

Module details for 2024/25.

15 credits

FHEQ Level 5

Pre-Requisite

Further Programming or ability to program in Java.

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.

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 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.

TypeTimingWeighting
Computer Based ExamSemester 1 Assessment70.00%
Coursework30.00%
Coursework components. Weighted as shown below.
ProjectT1 Week 9 100.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.

TermMethodDurationWeek pattern
Autumn SemesterClass1 hour11111111111
Autumn SemesterLecture1 hour22222222222

How to read the week pattern

The numbers indicate the weeks of the term and how many events take place each week.

Dr Giulio Guerrieri

Assess convenor
/profiles/623545

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.

School of Engineering and Informatics (for staff and students)

School Office:
School of Engineering and Informatics, ºÚÁÏÍø, Chichester 1 Room 002, Falmer, Brighton, BN1 9QJ
ei@sussex.ac.uk
T 01273 (67) 8195

School Office opening hours: School Office open Monday – Friday 09:00-15:00, phone lines open Monday-Friday 09:00-17:00
School Office location [PDF 1.74MB]