IN9630 – Programming Language Implementation and Formalisation

Schedule, syllabus and examination date

Course content

This course will introduce you to the different aspects of programming language design and give you a deeper understanding of theoretical aspects of programming, with a focus on functional programming. ?You will get a practical introduction to functional programming concepts such as higher order functions, type classes, functors and monads, which will be used to for structuring parsers, testing and interpreters; fundamental tools to implement programming languages. ?You will then be introduced to the fundamental concepts of programming language theory. This includes the relevant descriptive approaches (formal semantics and type systems), their instantiations and applications to concrete situations, and the mathematical principles for reasoning about them. The goal is that you at the end of the course can design simple domain-specific programming languages and implement them in Haskell.

Learning outcome

After completion of the course, the student have learned to:

  • Use program structuring principles and design patterns, such as monads, for structuring the code with a clear separation of concerns.
  • Use a monadic parser combinator library to write a parser for a medium-sized language with a given grammar, including changing the grammar so that it is on an appropriate form.
  • Read and write specifications of formal systems relating to programming language theory.
  • Decide and prove properties of programs or program fragments.
  • Decide and prove properties of programming languages or particular language features.
  • Design and implement simple domain-specific programming languages
  • Create new simple specifications of formal systems relating to programming language theory

Admission to the course

PhD candidates from the University of Oslo should apply for classes and register for examinations through?Studentweb.

If a course has limited intake capacity, priority will be given to PhD candidates who follow an individual education plan where this particular course is included. Some national researchers’ schools may have specific rules for ranking applicants for courses with limited intake capacity.

PhD candidates who have been admitted to another higher education institution must?apply for a position as a visiting student?within a given deadline.

It is an advantage to have a basi