NDAB16008U CHANGED: Programming Language Design (PLD)

Volume 2018/2019

BSc Programme in Computer Science


The course explores the design space of programming languages and how the design choices affect implementation and other properties of the language.

A brief history of programming languages is presented and a selected set of features are explored with respect to design choices, how they interact and how they can be implemented.

The aim is to give the student an understanding of the programming-language landscape that will both be helpful when the student designs and implements programming languages but also to better understand existing programming languages.

Learning Outcome

The course aims to give the student:

Knowledge of:

  • Implementation strategies
  • Syntax
  • Memory management
  • Scope rules
  • Control structures
  • Types
  • Language paradigms
  • Modules
  • Semantics
  • Domain-specific languages
  • Computational power of languages


Skills to:

  • Design and implement simple programming languages using several of the above-listed features.
  • Describe this language using a mixture of formal and informal specification.


Competences to:

  • Evaluate how design choices affect and are affected by implementation methods and other properties of programming languages.
  • Design a programming language tailored to a specific problem area or observing speciifc properties.
The student should have knowledge of basic programming language implementation equivalent to the courses "Oversættere (OV)" or "Implementering af programmeringssprog (IPS)" and have experience programming in several language paradigms including functional, imperative and object-oriented languages.
Lectures, classroom exercises, projects.
  • Category
  • Hours
  • Class Exercises
  • 32
  • Course Preparation
  • 52
  • Lectures
  • 32
  • Project work
  • 50
  • Theory exercises
  • 40
  • Total
  • 206
Continuous feedback during the course of the semester
7,5 ECTS
Type of assessment
Continuous assessment
CHANGED 2018/19:
The grade is given as a weighted average of four individual takehome exercises, where the final exercise is weighted as 40% of the total and the three first combined as 60%. It is possible to resubmit the three first exercises one week after they are evaluated. Due to time constraints it is not possible to resubmit the last exercise. The student will fail the course if one or more of the assignments is given less than 33% of full credit.
All aids allowed
Marking scale
7-point grading scale
Censorship form
No external censorship
Several internal examiners

CHANGED 2018/19:

The re-exam consists of submission of a new exercise (different from the original) to replace the last of the four exercises, followed by an oral examination in the learning goals not covered by this exercise. The oral examination is 30 minutes without preparation, but including approximately 5 minutes for deliberation.

Criteria for exam assesment

See Learning Outcome.