Master of Programming Languages

For students participating in the TU Delft Computer Science and Embedded Systems master’s programs we always have openings for master’s thesis projects.

All master’s thesis projects are aligned with our research. They often are connected to one of our ongoing research projects, but we also frequently use master’s projects to explore new research directions.

Note that research is rarely finished and that projects often generate new research questions. If you are interested in the topic of one of the ongoing or closed projects below, do contact the supervisors to find out if there is more to do in that area.

Project Location

Projects can be conducted at:

  • TU Delft in our own research labs, in close collaboration with our postdocs and PhD students
  • Industry (as part of an internship), usually with companies (in The Netherlands or abroad) with which we have an ongoing research collaboration (e.g. Oracle, Océ, ING, …)
  • Other (international) universities – we have a rich network of academic friends around the world.

You can make an appointment with one of the PL faculty members to see what projects are currently open, or you can propose your own project, provided there is a clear connection with the research we conduct at our labs.

Composing your Study Program

If you plan to conduct your master’s project at PL, you will need to include at least two of the CS master’s courses PL teaches in your IEP (Individual Exam Program). We strongly recommend you to follow our compiler construction and programming languages seminar courses. Besides our own programming languages related courses, when choosing the electives in your program you can consider including courses in such areas as software engineering, machine learning, data science, distributed systems, and security.

Optionally, you can start your research with a 7-8 week literature survey (IN4306, 10EC). This assignment is concluded with a report containing an overview of the state-of-the-art in a particular branch of research.

Proposing your Own Project

Under certain conditions it can also be possible to propose your own project. In those cases it is important to

  • Study a number of previous master’s theses
  • Identify an ongoing research project to which your proposal is connected.
  • Study a number of currently open master’s project ideas and identify the ones that are closest to your idea.

In particular you need to carefully think about the research component of your proposal, and have a clear idea on why your proposal is novel — it should advance the state-of-the-art in programming languages. If you wish to pursue this route it is advisable to select and contact a possible supervisor as early as possible.

Thesis Template

As a template for your master thesis, it is recommended that you fork the PL Master Thesis LaTeX Template repository, and manage your references at

Open Projects

Versioned Data Models

Supervisor(s): Eelco Visser, Christoph Lofi, Asterios Katsifodimos
Posted: March 17, 2019

Software Restructuring

Supervisor(s): Eelco Visser, Casper Bach Poulsen
Location: TU Delft, industry
Posted: March 15, 2019

Ongoing Projects

Generic Modular Analysis

Student: Taico Aerts
Supervisor(s): Eelco Visser, Hendrik van Antwerpen

Incremental Scannerless Generalized-LR Parsing

Student: Maarten Sijm
Supervisor(s): Eelco Visser, Jasper Denkers

Frame Virtual Machine

Student: Chiel Bruijn
Supervisor(s): Eelco Visser, Casper Bach Poulsen
Started: February 15, 2019

Previous Projects

A type system for dynamic instances

Student: Albert ten Napel
Supervisor(s): Eelco Visser, Robbert Krebbers
Defended: September 05, 2019

SCL-T - Template programming for Siemens SCL

Student: Jeffrey Goderie
Supervisor(s): Eelco Visser
Defended: August 29, 2019

Observability during Bottom Up execution - Improving PIE s change driven incremental build algorithm

Student: Roelof Sol
Supervisor(s): Eelco Visser, Robbert Krebbers, Gabriël Konat
Defended: August 29, 2019

The Design and Implementation of a Domain-Specific Language for the Description of Medical Devices

Student: Tim Rensen
Supervisor(s): Eelco Visser
Defended: April 18, 2018

Random Term Generation for Compiler Testing in Spoofax

Student: Martijn Dwars
Supervisor(s): Eelco Visser
Defended: April 03, 2018

Portable Editor Services

Student: Daniël Pelsmaeker
Supervisor(s): Eelco Visser, Gabriël Konat
Defended: May 03, 2018


Student: Jasper Denkers
Supervisor(s): Eelco Visser, Eduardo Amorim
Started: February 15, 2017
Defended: January 12, 2018

TODO: add links to (more) previous theses and student papers