Format | Lecture course with lab sessions |
Curriculum | MSc Grid Computing |
Block | 2a (Feb 1 - Mar 26, 2010) |
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 |
Teaching Assistants |
Dr Michael Hicks Simon Polstra |
Lectures |
Tue 10-12 REC-B3.44 Wed 10-12 REC-B3.44 (throughout February) Wed 10-12 SCP-F3.20 (throughout March) |
Labs |
Tue 13-16 REC-P1.27 Fri 09-12 REC-P1.26 During the lab session on Friday, Feb 5, 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 | New: Mon, Mar 22, 16-18, SCP-F3.20 |
Location | SCP: Science Park 107 (Nikhef building) REC: Roeterseiland Complex |
Grading | Project (50%), Assignments (25%), Exam (25%) |
Slides |
Disclaimer: These are the slides of my lectures, not more, not less.
They do not form a tutorial suitable for self-studying.
For instance, a slide may well miss an important aspect pointed out during the lecture,
or it may contain deliberately erroneous code or examples of how not to solve some problem.
|
Project |
In the project we implement a fully-fledged compiler for a non-trivial model language named CivC ("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. Project Description: CivC Compiler 1.0Project Description: CivC Compiler 1.1 Project Description: CivC Compiler 1.2 Project Description: CivC Compiler 1.3 CivC-VM Manual 0.1 Project due date: April 5, 2010. |
Assignments |
The purpose of the theoretical assignments is to deepen the understanding of compiler construction
and to complement the practical work undertaken in the project.
Assignment 1 Assignment 2 Assignment 3 Assignment 4 Assignment 5 Assignment 6 |
Mailing List | The google groups mailing list uva-compos-2010 serves as the primary medium of communication among participants of the course between lectures and lab sessions. This is a restricted mailing list solely accessible by invitation of the lecturer. Please, drop him an email if you are registered for the course. |
Background Material | Bison Manual |
Literature |
|