- Professor of Computer Science
- Antoni van Leeuwenhoek Professor
- Chair of TU Delft Programming Languages Group
- Department of Software Technology
- Faculty of Electrical Engineering, Mathematics and Computer Science
- Delft University of Technology
- Delft, The Netherlands (CEST/CET)
- email@example.com | firstname.lastname@example.org
- About | Contact
Prospective PhD Students & PostdocsI'm looking for PhD students, postdocs, and student programmers. See my projects and research topics for an impression of my interests. See the PL group's open positions for what is available right now. Send me an email with CV and motivation/research interests, also to explore future opportunities.
Expressing IntentHow to enable software engineers to express intent directly in terms of the concepts of a domain of interest (and get the corresponding implementation for free)? Most of my (group's) research is related, one way or another, to that question, and includes: design of meta-languages for language design (to support the development of new languages), language theory and implementation techniques (such as parsing, name resolution, constraint solving, rewriting), design of domain-specific languages for particular domains (such as web programming, build systems, digital printers), evaluation of these languages in applications (such as WebLab, conf.researchr.org).
Declare Your Language with SpoofaxHow to enable software engineers to design and implement (domain-specific) programming languages? In the Spoofax Language Workbench project we explore solutions and integrate these in a programming environment for the development of languages using high-level declarative meta-languages for syntax, static semantics, dynamic semantics, program analysis, and program transformation.
Name Resolution with Scope GraphsHow to formalize the name binding rules of programming languages? We are developing scope graphs, a uniform framework for the representation of a wide range of name binding patterns in programming languages. A general theory of name resolution interprets scope graphs to resolve references to their corresponding declarations. Scope graphs are a core component of the Statix language for type system specification.
Incremental Software Pipelines with PIEHow to declaratively specify software pipeline for fine and coarse grained tasks and ensure their sound incremental execution? PIE is a domain-specific language and runtime for the specification of software pipelines and their incremental execution. PIE provides an expressive language for defining pipelines including dynamic dependencies, and guarantees efficient, precise and scalable incremental execution.
Programming Education at Scale with WebLabHow to scale programming education to large numbers of students? How to scale delivery of many assignments and exam questions for a course and still provide feedback to students? WebLab provides a web-based learning environment for programming education that supports lab assignments and proctored digital exams. WebLab is currently used in 12 courses at TU Delft.
In this course students study declarative meta-languages for compiler construction such as context-free grammars, scope graphs, type constraints, and strategic rewriting. Using this knowledge they build a compiler and IDE for MiniJava using the Spoofax language workbench.Master CS | CS4200 | Q1+Q2 | Info
Language Engineering Project
In this course students explore (some aspect) of the design and implementation of a (domain-specific) programming language by building an implementation in Spoofax.Master CS | IN4333 | Q4 | Info
Seminar Programming Languages
In this seminar we discuss papers from the programming languages literature.Master CS | CS4130 | Q1 | Info
I supervise bachelor and master thesis projects in computer science at TU Delft. See my research areas to get an impression of my interests. Send me an email if you are interested in doing a project with me.Bachelor & Master CS | CSE3000, IN5000 | Q1-4 | Info
- Other PL courses | Older courses
- Review Committee Member of OOPSLA 2020
- Steering Committee Chair of ACM SPLASH
- Track co-chair of VERSEN track at ICT.OPEN 2020
- Program Committee member of PLNL 2019
- Review Committee Chair of OOPSLA 2019
- Associate Editor of PACMPL
- Track co-chair of VERSEN track at ICT.OPEN 2019
- Co-organizer of PLNL 2018
- Older activities
Recent and Upcoming Activities
Lecture at the PLISS 2020 Summer School in Bertinoro, Italy.May 20, 2020 (posted November 11, 2019)
Lecture at the Computer Science Club and at Jetbrains in St. Petersburg.September 26, 2020 (posted November 20, 2019)
Paper: Intrinsically-Typed Definitional Interpreters for Linear, Session-Typed Languages by Arjen Rouvoet, Casper Bach Poulsen, Robbert Krebbers, Eelco Visser accepted at CPP 2020January 25, 2020 (posted November 27, 2019)
Proud to present Proceedings of the ACM on Programming Languages. Volume 3 Issue OOPSLA, October 2019. All 73 articles are open access. The editorial messageOctober 14, 2019
Blog post: Fast and Safe Linguistic Abstraction for the Masses (my contribution to the 2018 workshop A Research Agenda for Formal Methods in the Netherlands)September 29, 2019
Jasper Denkers wins best paper and best presentation award at ESEC/FSE 2019 Doctoral Symposium for his paper on 'A Longitudinal Field Study on Creation and Use of Domain-Specific Languages in Industry' based on work with/at Océ."August 27, 2019
The Spoofax team has a vacancy for a PhD student in language engineeringAugust 9, 2019
Eduardo Amorim successfully defended his PhD thesis Declarative Syntax Definition for Modern Language Workbenches and was awarded the degree of doctor.June 19, 2019
- Old news