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
Currently the group does not have ongoing funded research projects.
Past Research Projects
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 |
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 |