Course syllabus
DAT151 / DIT231 Programming language technology lp2 HT23 (7.5 hp)
This course is offered by the department of Computer Science and Engineering.
For more information, see the course home page.
Contact details
Andreas Abel, examiner, course responsible, and lecturer.
Assistant teachers:
Course purpose
Learn how to implement programming languages, in particular, parsing using grammars, type-checking, interpretation, and compilation. Study the mathematical foundations, such as automata for lexing, shift-reduce parsers, typing rules, operational semantics, abstract machines, and compilation schemes. For further information, see Studieportalen.
Schedule
The lectures will be given on campus. For the schedule, consult also the course home page and/or TimeEdit.
Course literature
See the course home page.
Course design
See the course home page.
Laborations
Changes made since the last occasion
See the course home page.
Learning objectives and syllabus
Learning objectives:
- define the lexical structure of programming languages by using regular expressions, explain the functioning of finite automata, and implement lexical analyzers by using standard tools;
- define the syntax of programming languages by using context-free grammars, explain the principles of LL and LR parsing, and implement parsers by using standard tools;
- define and implement abstract syntax;
- master the technique of syntax-directed translation and its efficient implementation in their chosen programming language;
- formulate typing rules and implement type checkers;
- formulate operational semantic rules and implement interpreters;
- write simple code generators;
- be familiar with the basic implementation issues of both imperative and functional languages;
- use unification to implement polymorphic type checking;
- use closures to implement functional programming languages.
Link to the syllabus Chalmers.
Link to the syllabus GU (PDF).
Examination form
- "Pass" on all 4 assignments (labs).
- Written hall exam, determines the grade.
For details, see the course home page.