Programming Languages Research at TU Delft

In the Programming Languages research program, we aim at improving the effectiveness and reliability of programming languages and systems. Effectiveness such that programmers can express intent at the right level of abstraction and get actionable feedback that is relevant and timely. Reliability such that programmers can trust the execution and analysis of programs.

Our first research objective is to develop theories for the formalisation of (aspects of) programming languages that are more concise, easier to reason about, and/or cover a larger range of languages. We validate these theories by means of specifications of new and existing languages.

Our second research objective is to develop programming systems that embody these theories in order to support the rapid production of language definitions, their implementation and verification. We verify the effectiveness and correctness of these systems by means of automated testing, performance experiments, and formal mechanised verification.

Our third research objective is to understand the tradeoffs in language design and the effects of the application of new theories and systems to language design. We conduct case studies in the design, implementation, and operation of programming languages.

To realise these objectives, we focus on the following research topics:

  • Language Engineering: How can declarative language definitions be used to derive rich development environments for (domain-specific) programming languages?
  • Program Analysis: How to define program analyses at a high-level of abstraction and efficiently and incrementally execute these definitions?
  • Semantics Engineering: How to efficiently verify the consistency of language definitions in order to check properties such as type soundness and semantics preservation?
  • Language Design: How to systematically design (domain-specific) software languages with an optimal trade-off between expressivity, completeness, portability, coverage, and maintainability.

Research Projects

Ongoing funded research projects in programming languages include the following:

Start Project Title Funding PL Principal Investigators
2021 A trustworthy and extensible core language for Agda NWO VENI Jesper Cockx
2020 Composable and Safe-by-Construction Programming Language Definitions NWO VENI Casper Bach Poulsen
2019 Programming and Validating Software Restructurings NWO MasCot Eelco Visser
2018 Verified programming language interaction NWO VENI Robbert Krebbers
2018 Domain-specific languages for digital printing systems TKI/HTSM/ES Eelco Visser
2018 MCRL2 in Spoofax 4TU.NIRICT Eelco Visser
2017 Declarative Specification of Control-Flow and Data-Flow Analysis in the Spoofax Language Workbench Oracle ERO Eelco Visser
2016 DFG Sebastian Erdweg
2015 Automatic Assessment and Feedback for Online Assignments TUD Eelco Visser
2013 The Language Designer’s Workbench (AutoSound) NWO VICI Eelco Visser

Past Research Projects

Start Project Title Funding PL Principal Investigators
2012 Deep Integration of Domain-Specific Languages (LangLib) NWO FC Eelco Visser
2012 Development and Evaluation of the Spoofax Language Workbench Oracle ERO Eelco Visser
2008 Pull Deployment of Services (PDS) NWO/Jacquard Eelco Visser
2007 Model-Driven Software Evolution (MoDSE) NWO/Jacquard Eelco Visser
2007 Transformations for Abstractions (TFA) NWO FC Eelco Visser
2002 Transparent Configuration Environments (TraCE) NWO/Jacquard Eelco Visser
2000 A Transformation Factory for Digital Signal Processing Software Philips Eelco Visser
2001 Models and Techniques for Variability Management SERC Eelco Visser