Course syllabus

Compilers and Interpreters, 7.5 credits

Course code: DT135G Credits: 7.5
Main field of study: Computer Science Progression: G1F
Last revised: 14/03/2024    
Education cycle: First cycle Approved by: Head of school
Established: 02/12/2019 Reading list approved: 14/03/2024
Valid from: Autumn semester 2024 Revision: 2

Learning outcomes

The course objective is to give the student

  • an understanding of the basic principles for how a program is analyzed, translated and executed,
  • knowledge about the types of interpreters and compilers and their use,
  • knowledge about the compiler's phases,
  • knowledge about tools that can be used to facilitate the development of compilers and interpreters,
  • an understanding about how compilers and interpreters are designed and how they work,
  • an understanding about how data and storage is managed during program execution,
  • understanding of how to, in practice, build a simple interpreter or compiler for a simple language,
  • ability and practical skills needed to construct parts of a compiler, and other programs that use compiler technology, in particular a lexical analyzer and a simple syntactic analyzer, both in standard program code and with special tools, and
  • a professional approach to programming, which includes problem analysis, testing and documentation.

Content

The following topics are covered in the course

  • types of translators, such as compilers and preprocessors,
  • the design and operation of a compiler,
  • lexical analysis (scanning),
  • syntactical analysis (parsing), methods for syntax specification,
  • type systems and type control,
  • internal representation of a program,
  • runtime systems,
  • memory management, garbage collection,
  • code generation and optimization,
  • compiling for physical and virtual machines,
  • methods for error handling,
  • tools to create and generate compilers,
  • criteria for language design, and
  • the students will build some important parts of a compiler, both in C++ and using various tools.

Examinations and grades

Theory, 3 credits (Code: A001)
Grades used are Fail (U) or Pass (G).

Project, 4.5 credits (Code: A002)
Grades used are Fail (F), Sufficient (E), Satisfactory (D), Good (C), Very Good (B) or Excellent (A).


According to the Higher Education Ordinance, Chapter 6, Section 18, a grade is to be awarded on the completion of a course, unless otherwise prescribed by the university. The university may determine which grading system is to be used. The grade must be determined by a teacher specifically nominated by the university (the examiner).

In accordance with university regulations on grading systems for first and second-cycle courses and study programmes (Vice-Chancellor’s decision ORU 2018/00929), one of the following grades is to be used: fail (U), pass (G) or pass with distinction (VG). For courses included in an international master’s programme (60 or 120 credits) or offered to the university’s incoming exchange students, the A to F grading scale is to be used. The vice-chancellor, or a person appointed by them, may decide on exceptions from this provision for a specific course, if there are special grounds for doing so.

The grades used on this course are Fail (F), Sufficient (E), Satisfactory (D), Good (C), Very Good (B) or Excellent (A).

Comments on grades

The grade on the course is given the grade from exam A002, given that exam A001 is passed.

Modes of assessment

  • Theory (code A001): Written examination
  • Project (code A002): Written assignment and oral examination

A retake will be scheduled to take place within eleven weeks of the regular examination.

For students with a documented disability, the university may approve applications for adapted or other modes of assessment.

For further information, see the university's local examination regulations.

Specific entry requirements

Data Structures and Algorithms, 7.5 Credit and Object-Oriented Programming, 7.5 Credits.

For further information, see the university's admission regulations.

Other provisions

The course may be given in English.

Students who have been admitted to and registered on a course have the right to receive tuition and/or supervision for the duration of the time period specified for the particular course to which they were accepted (see, the university's admission regulations (in Swedish)). After that, the right to receive tuition and/or supervision expires.

Reading list and other learning resources

Required Reading
Aho, Alfred V, Lam, Monica. S, Sethi, Ravi och Ullman, Jeffery D
Compilers - Principles Techniques and Tools (latest edition)
Addison-Vesley