This page collects key material for the course. Slides are updated throughout the term, for example to correct errors. Please get the latest versions before revising. If you find a mistake, please let me know. Office hours are 12:00-13:00 after the Wednesday lecture. My office is Chichester 2, Room 312. As I supervise a lot of students, I strongly recommend to consult my online calendar to check my availablility, and then to email me for an appointment.

Important pages. Course's Canvas page and course's homepage. The course also has a Discord channel for chats about compilers. The invite to the channel can be found on Canvas.

Lecture slides. Slides for lectures not yet delivered are from last year. I might make small changes throughout the year.

1.pdf 1-handout.pdf Introduction, administrativa, course overview (Integer power example)
2.pdf 2-handout.pdf Lexing 1: regular expressions
3.pdf 3-handout.pdf Lexing 2: finite state automata
4.pdf 4-handout.pdf Syntax analysis 1: context free grammars
5.pdf 5-handout.pdf Syntax analysis 2: parsing (Optional.java)
6.pdf 6-handout.pdf Semantic analysis
7.pdf 7-handout.pdf Stack machines
8.pdf 8-handout.pdf Register machines
9.pdf 9-handout.pdf Accumulator machine
10.pdf 10-handout.pdf Introduction to realistic code generation
11.pdf 11-handout.pdf UNDER CONSTRUCTION: Introduction to the RISC-V processor
12.pdf 12-handout.pdf UNDER CONSTRUCTION: Code generation for the RISC-V processor
13.pdf 13-handout.pdf Compiling objects
14.pdf 14-handout.pdf Garbage collection
15.pdf 15-handout.pdf Caching (Loop exchange example)
16.pdf 16-handout.pdf JIT compilers (not exam relevant)

Lecture videos. Will be uploaded here after lectures. Please let me know if you have trouble accessing them.

2 Oct 2019 Introduction
4 Oct 2019 Lexing (1)
9 Oct 2019 Lexing (2)
11 Oct 2019 Lexing (3)
16 Oct 2019 Lexing (4), Parsing (1)
18 Oct 2019 Parsing (2)

Tutorial exercises. Sometimes, due to scheduling of tutorials and lectures, tutorial questions might be a bit ahdead of lecture material, especially at the start of term. Don't let this worry you, you can always do those exercises later.

Week 2 (Solutions).
Week 3

Assessed coursework.

Past exams. Can be found here.

Online Material and Books: The course does not follow a set textbook. Instead, suitable lecture notes will be provided. Below is a small selection of supplementary reading material. Most go well beyond what we will cover in the course.