Syllabus

Programming Language Technology

Programspråksteknik

Course
DIT231
Second cycle
7.5 credits (ECTS)
Disciplinary domain
NA Natural sciences 100%

About the Syllabus

Registration number
GU 2025/3968
Date of entry into force
2026-03-15
Decision date
2025-11-27
Valid from semester
Autumn term 2026
Decision maker
Department of Computer Science and Engineering

Grading scale

Three-grade scale

Course modules

Laboration, 1.5 credits
Examination, 6 credits

Position

The course can be part of the following programmes:

  1. Computer Science, Bachelor's Programme (N1COS)
  2. Computer Science, Master's Programme (N2COS)
  3. Applied Data Science Master's Programme (N2ADS)

The course is a also a single-subject course at Gothenburg University.

Main field of study with advanced study

ITCLA Computer Science-Algorithms and Logic - A1N Second cycle, has only first-cycle course/s as entry requirements
ITSOF Software Engineering - A1N Second cycle, has only first-cycle course/s as entry requirements

Entry requirements

The requirements for the course is to have successfully completed courses corresponding to 60 credits in the subject of Computer Science, including

  • 7.5 credits in programming (for example DIT142 Functional programming, DIT952 Objektorienterad programmering and design, or equivalent);
  • 7.5 credits in data structures (for example DIT960 Data structures, DIT725 Logic, algorithms and data structures or equivalent).

Applicants must prove knowledge of English: English 6/English level 2 or the equivalent level of an internationally recognized test, for example TOEFL, IELTS.

Content

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.

The students will learn about grammars when writing the syntax analysis and about type systems when implementing the type checker. When implementing the interpreter and compiler the students will learn about practical implementation concerns as well as the theory of formal semantics.

Objectives

After completing the course the student is expected to be able to:

Knowledge and understanding

  • explain the functioning of finite automata;
  • explain the principles of LL and LR parsing;
  • explain the concept of compiler correctness;

Competence and skills

  • define and implement abstract syntax;
  • define the lexical structure of programming languages by using regular expressions, and implement lexical analyzers by using standard tools;
  • define the syntax of programming languages by using context-free grammars and implement parsers by using standard tools;
  • write simple code generators; apply the technique of syntax-directed translation and its efficient implementation in their chosen programming language;
  • formulate typing rules and implement type checkers for functional and imperative languages;
  • formulate operational semantic rules and implement interpreters for functional and imperative languages;

Judgement and approach

  • judge about programming language design issues as for example with the respect to efficiency and usability.

Sustainability labelling

No sustainability labelling.

Form of teaching

The teaching consists of lectures, exercises, and laborations, as well as individual supervision in connection to the laborations.

Language of instruction: English

Examination formats

The course is examined through an individual written exam in an examination hall at the end of the course and laboratory assignments carried out individually or in pairs.


If a student who has been failed twice for the same examination element wishes to change examiner before the next examination session, such a request is to be granted unless there are specific reasons to the contrary (Chapter 6 Section 22 HF).

If a student has received a certificate of disability study support from the University of Gothenburg with a recommendation of adapted examination and/or adapted forms of assessment, an examiner may decide, if this is consistent with the course’s intended learning outcomes and provided that no unreasonable resources would be needed, to grant the student adapted examination and/or adapted forms of assessment.

If a course has been discontinued or undergone major changes, the student must be offered at least two examination sessions in addition to ordinary examination sessions. These sessions are to be spread over a period of at least one year but no more than two years after the course has been discontinued/changed. The same applies to placement and internship (VFU) except that this is restricted to only one further examination session.

If a student has been notified that they fulfil the requirements for being a student at Riksidrottsuniversitetet (RIU student), to combine elite sports activities with studies, the examiner is entitled to decide on adaptation of examinations if this is done in accordance with the Local rules regarding RIU students at the University of Gothenburg.

Grades

Sub-courses

  1. Written exam, 6 credits
    Grading scale: Pass with Distinction (VG), Pass (G) and Fail (U)
  2. Laboration, 1.5 credits
    Grading scale: Pass (G) and Fail (U)

The grading scale comprises: Pass with Distinction (VG), Pass (G) and Fail (U).

To be awarded the grade Pass with Distinction (VG), the student must pass the sub-course Laboration and get the grade Pass with Distinction on the sub-course Written exam.

Course evaluation

The course is evaluated through meetings both during and after the course between teachers and student representatives. Further, an anonymous questionnaire is used to ensure written information. The outcome of the evaluations serves to improve the course by indication which parts could be added, improved, changed or removed.

Other regulations

The course is a joint course together with Chalmers.

The course replaces the course DIT230 Programming Languges. The course cannot be included in a degree which contains DIT230. Neither can the course be included in a degree which is based on another degree in which the course DIT230 is included.

The course cannot be included in a degree which contains DIT229. Neither can the course be included in a degree which is based on another degree in which the course DIT229 is included.