Format | Lecture course with lab sessions |
Curriculum | MSc Grid Computing |
Block | 2a (Jan 31 - Mar 25, 2011) |
Status | Compulsory |
ECTS | 6 credits |
Objectives | To develop the ability to design and implement compilers for various purposes and to understand the principles of major constituents of modern operating systems. |
Contents | This course naturally falls into two tracks: compiler construction and operating systems. In the first track we will cover foundations of compiler archictecture: lexical and syntactical analysis, context/type checking and inference, high-level code transformations and optimisations and target code generation. A simple programming language serves as a case study throughout the course. In the operating system track we will focus on selected aspects of resource management. |
Lecturer | Dr Clemens Grelck |
Assistants |
Simon Polstra Fangyong Tang |
Lectures |
Wed, 09-11, F1.02 Fri, 11-13, G4.15 |
Labs |
Wed, 12-15, A1.20 Fri, 13-16, A1.20 During the lab session on Wednesday, Feb 2, you will receive an introduction to the project assignment and to the compiler construction framework used during the course. Your presence during this lab session is essential!! |
Exam |
Wed, Mar 23, 13-16, G3.13 You may take personal notes including your own solutions to assignments into the exam. |
Timetable | The latest timetable is available on Rooster. |
Grading | Project (50%), Assignments (25%), Exam (25%) You need a minimum grade of 6 in each category to pass the course! The project can be (and should) be worked on in groups of two students, the theoretical assignments must be submitted individually. |
Slides | Will be made available on Blackboard after the lecture. |
Project |
In the project we implement a fully-fledged compiler for a non-trivial model language named CiviC ("Civilised C"). The language combines essential ideas from C, Pascal and Fortran into a fairly simple language design that allows us to focus on essential concepts in compilation techniques rather than providing support a complete real world programming language. After lexicographic, syntactic and semantic analysis as well as some optimisation your compiler is supposed to generate code for the Civic Virtual Machine CiviC-VM, a byte code interpreting virtual machine with many similarities to the Java-VM. Your practical work will be supported by a fully-fledged compiler construction framework that has proved itself in a number of academic compiler projects. As documentation of this framework is unfortunately a bit scarce, your presence during the first lab, where a hands-on tutorial is given, is crucial.
Project due date: April 4, 2011. |
Assignments |
The purpose of the theoretical assignments is to deepen your understanding of compiler construction
and to complement the practical work undertaken in the project.
The assignments will be made available on
Blackboard.
|
Mailing List | The UvA mailing list compos2011 serves as the primary medium of communication between lecturers and participants as well as among participants themselves. Subscription to the mailing list is controlled and restricted to participants of the course. Traffic on the mailing list is archived; access to the archives is restricted to participants. Please, subscribe here. |
Background Material | Bison Manual |
Literature |
The course does not follow any specific text book.
The following list summarises a number of interesting textbooks on various
aspects of the course.
While books are always a helpful source of background information,
I do not expect participants of the course the buy any or all of these,
nor do I receive revenues from any of these books.
|