CS3470: Compilers And Code Generation

Course Lecturers: Elizabeth Scott and Thomas van Binsbergen

Course Lecture Notes

There is a complete set of Course Lecture Notes for this course.

These notes cover all the material in the course, however you should consult text books for further explanation and worked exercises.
Recommended books are listed in the Course Lecture Notes. You should download the Notes and use them as a basis for understanding the lectures.

Here are the CS1870 Course Lecture Notes which you may find useful for revision.

Here is an example LR DFA direct construction

Here are the assignment sheets from 2017 ass1 ass2 ass3 ass4 which you may find useful for additional practice.


There are 4 mandatory assessed assignments for this course. The assignments are due in teaching weeks 3,6,8 and 11.

Upload PDF images of your coursework via Moodle. Paper submissions cannot be accepted. Please make sure you name is on each sheet of your submission, and that it is legible when printed.

Assignment 1     due FRIDAY 19th OCTOBER              26th Oct: General feedback

Assignment 2     due FRIDAY 9th NOVEMBER           20th Nov: General feedback

Assignment 3     due FRIDAY 23rd NOVEMBER           7th Dec: General feedback

Assignment 4     due MONDAY 10th DECEMBER          6th Jan: General feedback         

Lab Sessions

Some of the lectures will be run as hands on laboratory sessions in which students will use the compiler gerator package RDP.
Using RDP you will be able to apply your understanding of the LL(1) grammar conditions to write language specifications which admit recursive descent parsers.

Lab Session 1 9am Friday 26th Oct HITT lab

Lab Session 2 9am Friday 16th Nov HITT Lab     

Lab Session 3 9am Friday 30th Nov HITT Lab

Related Topics

This course applies many of the ideas covered in CS1870, particularly automata theory and assembly programming.
It applies the basic mathematical skills developed in CS1860.
It applies the knowledge you have built up of various programming languages; your experience will help you to understand the purpose and usefulness of the techniques studied.

Lecture Diary

See lecture diary for topics covered in lecturers so far.

Course Deadlines

See course deadlines for formal details of the course organisation.