UG3 Compiling Techniques 2018/2019

Previous year course content: 2017-18 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.

The coursework description is available here: 2018-19 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 29 November 2018.


This module runs in Semester 1 and is taught by Christophe Dubach with LLVM lectures taught by Aaron Smith. The first lecture will be on Tuesday 18 Sep. 2018. 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 20th Sep. 2018.

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