http://www.cse.chalmers.se/edu/course/DAT151/
Google group: http://groups.google.com/group/plt-2016 (please provide your full name and date of birth when requesting membership!)
Fire / Chalmers studieportal / GU course description / GU course page stub / Course page 2015
All lectures are in HC2, starting at 13:15.
Material: plt = course book, dragon = Dragon book. Slides follow closely the plt book.
Date | Time | Title | Material | |
---|---|---|---|---|
Tue 01/11 | 13-15 | Compilation Phases / BNFC | slides, plt 1, dragon 1 | |
Thu 03/11 | 13-15 | Grammars / Hands-on with Lab 1 | slides, plt 2, dragon 2.8.2,4.1-4.3 | |
Tue 08/11 | 13-15 | Theory of lexing | lab1 PM | |
Thu 10/11 | 13-15 | Theory of lexing and parsing | slides, plt 3, dragon 3,4 | |
Mon 14/11 | 23 | Lab 1 deadline | ||
Tue 15/11 | 13-15 | Interpreting | slides, plt 5 | |
Thu 17/11 | 13-15 | Type checking | slides, plt 4, dragon 5,6 | |
Tue 22/11 | 13-14 | Hands-on with Lab 2 (Haskell) | lab2 PM | |
Tue 22/11 | 14-15 | Hands-on with Lab 2 (Java) | ||
Thu 24/11 | 13-15 | Code generation | slides, plt 6, dragon 6,7 | |
Mon 28/11 | 23 | Lab 2 deadline | ||
Tue 29/11 | 13-14 | Hands-on with Lab 3 (Haskell) | lab3 PM | |
Tue 29/11 | 14-15 | Hands-on with Lab 3 (Java) | ||
Thu 01/12 | 13-15 | Functional programming languages | slides, plt 7, dragon 6.5,7.3 | |
Tue 06/12 | 13-15 | Type inference and polymorphism | plt 7.7-9 | |
Thu 08/12 | 13-15 | Hands-on with Lab 4 | lab4 PM | |
Mon 12/12 | 23 | Lab 3 deadline | ||
Tue 13/12 | 13-15 | Dependent types (Agda) | Agda demo start finish | |
Thu 15/12 | 13-15 | Preparing for the exam | Training Exam | |
2017 | ||||
Mon 09/01 | 23 | Lab 4 deadline | ||
Wed 11/01 | 8.30-12.30 | Exam (M) | Solution | |
Mon 16/01 | 23 | Final lab deadline | all lab returns | |
Thu 30/03 | Lab resubmission intent deadline | |||
Thu 06/04 | Late final lab deadline | |||
Tue 11/04 | 8.30-12.30 | Exam (SB) | Solution | |
Fri 24/08 | 14-18 | Exam (M) | Solution | |
Tue 12/09 | 13.30 | Exam review |
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
Andreas Abel, course teacher and examiner.
Daniel Hausknecht, Andreas Lööw, Daniel Schoepe, assistants.
If you have any general questions regarding the course, the labs or the exercises, please ask them in our Google group. 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.
Lab supervision take place in ED3354.
Day | Time | Supervisors |
---|---|---|
Tue | 15:15-17:00 | AL DH |
Thu | 15:15-17:00 | DH DS |
Fri | 13:15-15:00 | DS AL |
The lab rooms and supervision are available from Tue 1 November till Fri 16 December 2016.
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.
The labs are quite substantial, so please set aside at least 20 full working hours before the deadline.
Reporting is done via Fire. Before reporting, you must run your program through a test suite.
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.
If you did not pass the labs by the end of the course you will have another opportunity in connection with the re-exam in April. The deadline will be Thursday, 6 April 2017. If you intend to re-submit labs then, please contact the course responsible via email on 30 March at the latest. If you need help you should also contact the course responsible, not the teaching assistants. Note however that you can only expect limited support. If you need a substantial amount of help, it is probably better to wait until next time the course is given.
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.
Written exam, usual grading scales.
Exam dates: 11 Jan 2017 fm J, 11 Apr 2017 fm SB, 24 Aug 2017 em J.
The exam has the same structure as these old exams (download as archive).
Further, here are some exercises and solutions to prepare for the exam.
BNF Converter 2.8.1, http://bnfc.digitalgrammars.com/
If using the Java backend, you will need the Cup and JLex libraries.
You can download pre-compiled versions here.
Make sure they are placed in your classpath, for example by extracting to ~/javatools/
adding the following to .bashrc
:
export CLASSPATH=.:~/javatools/:~/javatools/Cup/:${CLASSPATH}
Student representatives for DAT151 Programming language technology.
Program | @student.chalmers.se | Name | |
---|---|---|---|
MPSOF | nabah | Omar Abu NABAH | |
TKDAT | hermanh | Herman HÖRNSTEIN | |
MPALG | timonl | Timon LAPAWCZYK | |
MPALG | erithor | Erik THORSELL | |
MPALG | yagublu | Lamiya YAGUBLU |