The course covers implementation of advanced programming
language features and methods for automatic analysis and
transformation of programs.
Memory management, including garbage collection.
Implementing function calls in scoped languages, including
Implementing polymorphic types.
Implementing logic languages.
Various optimisation techniques.
Program transformation methods such as partial evaluation and
Knowledge: Methods for implementing various
language paradigms and features and for optimising and transforming
programs using these.
Skills: Reading and presenting scientific papers
about the course topics. Implementing simple instances of
Competences: Understanding the impact language
design choices have on implementation and transformation of
See Absalon when the course is set up.
Teaching and learning methods
Lectures and sessions with discussion and problem
solving. Project work and seminar presentations.
The student must be familiar with different
programming language paradigms corresponding to the content of the
course "Advanced Programming" and have a basic
understanding of computer architecture and programming language
implementation, including lexing, parsing and code