Official URL: http://www.cse.chalmers.se/edu/course/DAT151/
Google group: http://groups.google.com/group/proglang-course-2014 (please provide your full name and date of birth when requesting membership!)
Last year course page: http://www.cse.chalmers.se/edu/year/2012/course/DAT150/index.html
6/3 Fire opened again for submissions of labs 1,2,3.
4/3 Please fill in the survey of lab efforts
25/2 There is now a better lab3 testsuite, with a Haskell script that can be run in a usual way. Also a few more test files in the "good" directory - those named "core".
25/2 The Computational Syntax homepage
21/2 Moved lab3 deadline by 2 days and lab4 by 1 day. Moved the lecture originally scheduled for 4 March to 25 February, and postponed other lectures accordingly.
18/2 The mini example now has an annotating type checker and a compiler.
2/2 Updated link to Fire: http://xdat09.ce.chalmers.se/plt/
23/1 Location fix: Thursday's lab supervisions are in ED2480.
20/1 Please provide your full name and date of birth when requesting membership in the group! Otherwise your request will be bounced back or ignored!
16/1/2014 First version of this page - mostly a copy of the 2013 material. Updates forthcoming soon.
All lectures are in HA2.
Material: plt = course book, dragon = Dragon book. Slides follow closely the plt book.
|Tue 21/1||13-15||Introduction: Compilation Phases||slides, plt 1, dragon 1|
|Thu 23/1||13-15||Grammars||slides, plt 2, dragon 2.8.2,4.1-4.3|
|Tue 28/1||13-15||Hands-on with Lab 1||lab1 PM|
|Thu 30/1||13-15||Theory of lexing and parsing||slides, plt 3, dragon 3,4|
|Mon 3/2||23||Lab 1 deadline||lab1 PM|
|Thu 6/2||13-15||Type checking||slides, plt 4, dragon 5,6|
|Tue 11/2||13-15||Interpreters||slides, plt 5|
|Thu 13/2||13-15||Hands-on with Lab 2||lab2 PM|
|Mon 17/2||23||Lab 2 deadline||lab2 PM|
|Tue 18/2||13-15||Code generation||slides, plt 6, dragon 6,7|
|Tue 18/2||15-17||Hands-on with Lab 3, group 1, in ED-3507||lab3 PM|
|Fri 21/2||13-15||Hands-on with Lab 3, group 2, in ED-3507||lab3 PM|
|Tue 25/2||13-15||The language design space||slides, plt 8, dragon 1|
|Wed 26/2||23||Lab 3 deadline||lab3 PM|
|Thu 27/2||13-15||Functional programming languages||slides, plt 7, dragon 6.5,7.3|
|Tue 4/3||13-15||Hands-on with Lab 4||lab4 PM|
|Thu 6/3||13-15||Preparing for the exam||Training Exam|
|Tue 11/3||23||Lab 4 deadline||lab4 PM|
|Fri 14/3||14-18||Exam (in house M)||old exams|
|Sat 15/3||23||Final lab deadline||all lab returns|
The official course schema is 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.
John Camilleri, Grégoire Détrez, Daniel Hausknecht, Inari Listenmaa, assistants.
The fastest way to get an answer is to mail the course's Google group http://groups.google.com/group/proglang-course-2014. Please provide your full name and date of birth when requesting membership! Otherwise your request will be bounced back or ignored.
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-2014. This will reach all teachers and fellow students. If you are not yet member of the group, you have to
You will have to give your real name and your person number (or date of birth) when you register, otherwise your membership is not approved. This is necessary to identify you as a participant of the course.
All classes in ED3507.
Inari will assist most of the times. The labs rooms and supervision are available from Tuesday 21 January till 7 March.
Attendance in these classes is optional. Normally, each student should attend at most 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.
There will be four laborations, written individually or in pairs.
Reporting is done via Fire http://xdat09.ce.chalmers.se/plt/. Before reporting, you must run your program through a test suite, such as the one for lab 1.
Final deadline is Saturday 15 March for all returned and corrected labs. No labs will be graded after this deadline.
We guarantee two gradings per lab: one for the version submitted before the ordinary deadline for that lab, the other for a resubmission before the final deadline. If your first submission is after the lab deadline, only one grading is guaranteed.
The main book will be one that developed from earlier editions of this course:
If you are really interested in the topic, for instance, if you want to continue with the Compiler Construction course, you should also consider the Dragon book,
Both books are available at web bookshops. The main book will also be sold at Cremona.
There will be a new electronic system for self-study exercises. No exercise classes, no bonus points (as in some previous years).
Here is a set of old exercises and solutions.
Written exam, usual grading scales. No more extra points from exercises.
Date: 14 March
Time: 2:00 afternoon
Place: M (Hörsalsvägen 5)
The exam has the same structure as these old exams.
BNF Converter, http://bnfc.digitalgrammars.com/
Precompiled Java tools (Cup and JLex)