Official URL: http://www.cse.chalmers.se/edu/course/DAT150
Google group: http://groups.google.com/group/proglang-course-2012
22/2 The next versions of the lecture notes will appear in the course Google group, and the old version will not be updated.
4/2 Wednesday lab supervisions cancelled for the rest of the course. Please choose one of the Monday groups.
4/2 CHARM days 7-8 February: no lab class, no exercise on 8 February. Lecture on 7 February as normal.
4/2 lab2 PM now in place.
24/1 Link to exercises 1 on 25/1 was at wrong date in the table. Now corrected. Sorry for the mistake!
10/1 Exceptional time and place of Lecture 2: Fri 19/1 at 15-17 in HC1
10/1 Updated schedules. Link to the lecture notes.
3/1/2012 First version of this page - so far mainly a copy of the 2011 material. Updates forthcoming soon. Major changes are expected, because the course has become a pure MSc course.
All lectures are in HC4, except 20/1. All exercises are in ML 3,4.
The linked material is in plt = lecture notes, dragon = course book by Aho & al. (see below).
|Tue 17/1||10-12||Introduction||plt 1, dragon 1|
|Fri 20/1||15-17||(in HC1) Grammars: abstract and concrete syntax||plt 2, dragon 2.8.2,4.1-4.3|
|Tue 24/1||10-12||Hands-on with Lab 1||lab1 PM|
|Wed 25/1||15-17||Exercise on the introduction and grammars||exercises 1|
|Thu 26/1||13-15||Theory of lexing and parsing||plt 3, dragon 3,4|
|Tue 31/1||10-12||Type checking||plt 4, dragon 5,6|
|Wed 1/2||15-17||Exercise on lexing and parsing||exercises 2|
|Thu 2/2||13-15||Interpretation||plt 5|
|Fri 3/2||23||Lab 1 deadline||lab1 PM|
|Tue 7/2||10-12||Hands-on with Lab 2||lab2 PM|
|Thu 9/2||13-15||Code generation||plt 6, dragon 6,7|
|Wed 15/2||15-17||Exercise on type checking and interpretation||to appear|
|Thu 16/2||10-12||Functional programming languages (by Arnar)||old slides, plt 7 (to appear), dragon 6.5,7.3|
|Mon 20/2||23||Lab 2 deadline||lab2 PM|
|Tue 21/2||10-12||Hands-on with Lab 3||lab3 PM|
|Wed 22/1||15-17||Exercise on code generation||exercises 4|
|Thu 23/2||13-15||Programming language design||plt 8-9, dragon 1|
|Tue 28/2||10-12||Compiling natural language||plt 10|
|Wed 29/2||15-17||Exercise on functional languages||exercises 5|
|Thu 1/3||13-15||Preparing for the exam||Training Exam|
|Mon 5/3||23||Lab 3 deadline||lab3 PM|
Official course schema in Time Edit
The aim of the course is to give understanding of how programming languages are designed, documented, and implemented. The course covers the basic techniques and tools needed to write interpreters, and gives a summary introduction to compilation as well. Those who have passed the course should be able to
Aarne Ranta, course responsible.
Arnar Birgisson, Ramona Enache, Grégoire Détrez, assistants.
The fastest way to get an answer is to mail the course's Google group http://groups.google.com/group/proglang-course-2012.
If you have any general questions regarding the course, the labs or the exercises, please ask them in our Google group http://groups.google.com/group/proglang-course-2012. This will reach all teachers and fellow students. If you are not yet member of the group, you have to
You can do both on the group page. You will have to give your real name and your person number when you register, otherwise your membership is not approved. This is necessary to identify you as a participant of the course.
Location: ED 3507
Notice: Wednesday 10-12 classes cancelled from 8 February.
Extra supervisor at some of the times, especially before lab deadlines. The labs rooms and supervision are available from the second week of the course (Monday 23 January).
Normally, each student should attend one supervised laboration time each week. Since attendance is not compulsory, there may be room for more times. But, if there is lack of room, those who attend their first supervision of the week have priority to get a place and supervisor help.
Aho, Lam, Sethi & Ullman: Compilers Principles, Techniques & Tools Second edition, Pearson/Addison Wesley 2007
also known as the Dragon book.
Make sure to get the second edition! The book is available at web bookshops and will be sold at Cremona.
The lecture notes are also being developed in the form of a book. They will cover the material needed for the course, whereas the Dragon book contains much more and will also serve the Compiler Construction course.
More on functional languages, and some help for Lab 3, is given in these slides by Xavier Leroy.
There will be three laborations, written individually or in pairs.
Reporting is done via Fire. Before reporting, you must run your program through a test suite, such as the one for lab 1.
Final deadline is Wednesday 15 March for all returned and corrected labs. No labs will be graded after this deadline.
There are two classes on Wednesday at 15-17:
Exercises give bonus points for the exam: 0.4 points per exercise, the sum rounded to the nearest integer. To claim bonus points, mark the ones you have done in a list in the beginning of the class. Marking an exercise means that you are prepared to present its solution on the blackboard.
To make sure that all your bonus points are counted, you should always go to the same teacher's class.
Written exam, usual grading scales. Extra points will be given for exercises.
Date: 8 March
The exam has the same structure as these old exams.
BNF Converter, http://bnfc.digitalgrammars.com/
Precompiled Java tools (Cup and JLex)