UG3 Compiling Techniques 2019/2020

Previous year course content: 2018-19 webpage


This is a courwork-only course with no exam. The coursework will consists of two assignments. The first one will be developing a compiler from scratch in Java, targeting the MIPS instruction set architecture. The second assignment will be about implementing a compiler pass in an existing compiler infrastructure in C++ (LLVM).
Your mark will simply be a function of the number of test programs your compiler is able to compile correctly. Your coursework will be assessed daily via an automated testing framework allowing you to always know how you are progressing.

Details about the coursework description will be released soon. The coursework description is available here: 2019-20 Coursework instructions (on gitlab)


Please note that for this course there is no possibility of submitting late without requesting an extension to the ITO beforehand. The mark will be determined by the version of your code present in your git repository (master branch) on the day/time of the deadline.


There will be a mandatory demonstration of your coursework taking place on Thursday 28 November 2019.


This module runs in Semester 1 and is taught by Christophe Dubach and Hugh Leather with the LLVM lectures taught by Aaron Smith. The first lecture is on Tuesday 17 Sep. 2019. Please note that the Tuesday lecture is 2 hours long. The schedule for the lectures is: There is one lab session of 2 hours per week accompanying these lectures starting in week 1. The first lab will be on Thursday 19th Sep. 2019.

Getting help

Course information

Christophe Dubach,

Home : Teaching : Courses : Ct 

Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail:
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh