Course syllabus
Course-PM
DAT700 Advanced programming language theory lp4 VT26 (7.5 hp)
Course is offered by the department of Computer Science and Engineering
Contact details
- JP Bernardy, examiner and lecturer jean-philippe.bernardy@gu.se
- Evan Cavallo, teaching assistant evanc@chalmers.se
Course purpose
To be able to really understand programming, one needs to understand programming language constructions precisely. The aim of this course is to present a broad range of programming languages principles, using a rigourous methodology. This means how to design a custom programming language, how different features interact and how they fit in within a certain paradigm. The course covers static (syntax, types systems) and dynamic (transition systems, operational semantics) aspects of programming languages. The main programming language features (functions, data types, subtyping, etc.) will be covered. Emphasis will be placed on reasoning and abstract models, challenging students to critically analyze language design choices
Schedule
Course literature
The book is available at the Chalmers book store.
Course design
The course will consists of a series of seminars, following the course book. Each seminar will feature a short presentation of the concepts, followed by supervised group work (exercises, further reading). Students are required to prepare the material in advance and post a question/comment in the relevant discussion (Canvas). In parallel, students will work in groups on their projects where they can apply the knowledge acquired in the seminars.
Changes made since the last occasion
- 2026: First time the course is given.
Learning objectives and syllabus
Learning objectives:
- Understand the structure of programming languages
- Know some of the principal constructions of programming languages and how they interact
- For each construction, be able to write their static (syntax, types) and dynamic (evaluation) descriptions
- Conceptually develop new language features
- Design a programming language with a mix of advanced features; or a custom programming language for a specific domain.
- Critically assess literature in the field of programming language design and theory.
Link to the syllabus on Studieportalen.
Examination form
- Active participation in seminars
- Realization and presentation of a project
- Critical review of another group's project
Academic honesty
- Copying from someone else’s solution is considered cheating.
- Communicating your solutions to other groups is forbidden.
- Using AI tools (ChatGPT, etc.) is forbidden throughout the entire course.
Course summary:
| Date | Details | Due |
|---|---|---|