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, Canon Production Printing [formerly Océ], ING, …)
  • Other (international) universities – we have a rich network of academic friends around the world.
Supervisors

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 researchr.org.

Open Projects

Probabilistic Testing for Weak Memory Concurrency

Supervisor(s): Soham Chakraborty, Burcu Ozkan
Posted: June 07, 2021

Static Binary Translation of Concurrency

Supervisor(s): Soham Chakraborty
Posted: June 05, 2021

WebDSL as a rapid prototype tool

Supervisor(s): Eelco Visser, Danny Groenewegen
Location: ICTU
Posted: May 28, 2021

Software Language Engineering for Algorithmic Graph Processing

Supervisor(s): Eelco Visser
Location: Oracle Labs
Posted: May 28, 2021

Bootstrapping and Generics for Statix

Supervisor(s): Aron Zwaan, Eelco Visser
Posted: May 15, 2021

Software Restructuring

Supervisor(s): Eelco Visser, Casper Bach Poulsen
Location: TU Delft, industry
Posted: May 01, 2021

A Domain Specific Language for Modeling Intelligent Print Systems

Supervisor(s): Jasper Denkers, Eelco Visser
Location: Canon Production Printing (Venlo), TU Delft
Posted: November 23, 2020

Versioned Data Models

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

Ongoing Projects

t.b.a.

Student: t.b.a.
Supervisor(s): Eelco Visser

t.b.a.

Student: t.b.a.
Supervisor(s): Eelco Visser

t.b.a.

Student: t.b.a.
Supervisor(s): Eelco Visser

t.b.a.

Student: t.b.a.
Supervisor(s): Eelco Visser

t.b.a.

Student: t.b.a.
Supervisor(s): Eelco Visser

t.b.a.

Student: t.b.a.
Supervisor(s): Eelco Visser

Describing inter-parameter constraints in web-apis using dependent types

Student: Gerben Oolbekkink
Supervisor(s): Casper Bach Poulsen

t.b.a.

Student: Liam Clark
Supervisor(s): Robbert Krebbers

Compiling First-Class Pattern Matching

Student: Toine Hartman
Supervisor(s): Jeff Smits, Eelco Visser

t.b.a.

Student: Matthijs Bijman
Supervisor(s): Jeff Smits, Eelco Visser

Case study on applying WebDSL and IceDust in conjunction

Student: Jesse Tilro
Supervisor(s): Danny Groenewegen, Eelco Visser

Modernizing the WebDSL front-end: A case study in SDF3 and Statix

Student: Max de Krieger
Supervisor(s): Danny Groenewegen, Eelco Visser

Previous Projects

Incremental Scannerless Generalized LR Parsing

Student: Maarten Sijm
Supervisor(s): Jasper Denkers, Eelco Visser
Defended: July 14, 2021

Renaming for Everyone - Language-Parametric Renaming in Spoofax

Student: Phil Misteli
Supervisor(s): Daniël Pelsmaeker, Casper Bach Poulsen, Eelco Visser
Defended: May 25, 2021

Compiling with Command Trees

Student: Bernard Bot
Supervisor(s): Casper Bach Poulsen, Eelco Visser
Defended: May 19, 2021

Framing Programming Languages: Designing and Using a Frame-Based Virtual Machine

Student: Bram Crielaard
Supervisor(s): Casper Bach Poulsen, Eelco Visser
Defended: April 21, 2021

Implementing the Decomposition of Soundness Proofs of Abstract Interpreters in Coq

Student: Jens de Waard
Supervisor(s): Robbert Krebbers, Eelco Visser
Defended: February 03, 2021

Composable Type System Specification using Heterogeneous Scope Graphs

Student: Aron Zwaan
Supervisor(s): Eelco Visser
Defended: January 27, 2021

Dynamix on the Frame VM: Declarative dynamic semantics on a VM using scopes as frames

Student: Chiel Bruin
Supervisor(s): Casper Bach Poulsen, Eelco Visser
Defended: April 29, 2020

Redesigning the Spoofax Testing Language

Student: Volker Lanting
Supervisor(s): Gabriël Konat, Eelco Visser
Defended: January 29, 2020

Incrementalizing Statix: A Modular and Incremental Approach for Type Checking and Name Binding using Scope Graphs

Student: Taico Aerts
Supervisor(s): Hendrik van Antwerpen, Eelco Visser
Defended: September 26, 2019

A type system for dynamic instances

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

Task Observability in change driven incremental build systems with dynamic dependencies

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

SCL-T - Template programming for Siemens SCL

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

Dependent Types for Invariants in Session Types

Student: Wiebe van Geest
Supervisor(s): Casper Bach Poulsen, Eelco Visser
Defended: December 14, 2018

Testing Code Generators against Definitional Interpreters

Student: Giannis Papadopoulos
Supervisor(s): Sebastian Erdweg, Eelco Visser
Defended: December 05, 2018

Incremental Type Checking in IncA

Student: Sander Bosma
Supervisor(s): Sebastian Erdweg, Eelco Visser
Defended: November 02, 2018

Abstract Interpretation of Program Transformations using Regular Tree Grammars

Student: Jente Hidskes
Supervisor(s): Sebastian Erdweg, Eelco Visser
Defended: November 02, 2018

Towards Language Parametric Web-Based Development Environments

Student: Olaf Maas
Supervisor(s): Eelco Visser
Defended: July 13, 2018

Portable Editor Services

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

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): Hendrik van Antwerpen, Eelco Visser
Defended: March 12, 2018

AlanLight

Student: Gerben Kunst
Supervisor(s): Daco Harkes, Eelco Visser
Defended: January 30, 2018

A Modular SGLR Parsing Architecture for Systematic Performance Optimization

Student: Jasper Denkers
Supervisor(s): Eduardo de Souza Amorim, Eelco Visser
Defended: January 24, 2018

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