Eelco Visser

Full Professor of Computer Science at TU Delft | Chair Programming Languages Group | Antoni van Leeuwenhoek Professor


  • February 5, 2018: Paper “PIE: A Domain-Specific Language for Interactive Software Development Pipelines” with Gabriël Konat, Michael J. Steindorfer, Sebastian Erdweg and Eelco Visser accepted for ‹Programming› 2018

  • February 5, 2018: Paper “Towards Zero-Overhead Disambiguation of Deep Priority Conflicts” by Luís Eduardo de Souza Amorim, Michael J. Steindorfer and Eelco Visser accepted for ‹Programming› 2018

  • January 1, 2018: I will give a talk at Curry On 2018 in Amsterdam

  • December 19, 2017: Paper “PixieDust: Declarative Incremental User Interface Rendering through Static Dependency Tracking” by Nick ten Veen, Daco Harkes and Eelco Visser accepted for WWW 2018 track on Web Programming

  • September 26, 2018: Paper Intrinsically Typed Definitional Interpreters for Imperative Languages by Casper Bach Poulsen, Arjen Rouvoet, Andrew Tolmach, Robbert Krebbers, and Eelco Visser accepted at POPL 2018 [video]

  • August 11, 2017: Paper “The Semantics of Name Resolution in Grace” by Vlad Vergu and Eelco Visser accepted at DLS 2017

  • August 4, 2017: Paper: “Deep Priority Conflicts in the Wild — A Pilot Study” by Eduardo Amorim, Michael Steindorfer, and Eelco Visser accepted at SLE 2017

  • August 4, 2017: Paper “FlowSpec: Declarative Dataflow Analysis Specification” by Jeff Smits and Eelco Visser accepted at SLE 2017

  • July 10, 2017: I will serve on the OOPSLA 2018 program committee; submission deadline is April 16, 2017; submit interesting papers!

  • April 26, 2017: I will give a talk about scope graphs at Curry On 2017 in Barcelona (video)

  • April 12, 2017: Paper IceDust 2: Derived Bidirectional Relations and Calculation Strategy Composition with Daco Harkes accepted at ECOOP 2017

  • March 6, 2017: I will be on the Program Committee of ‹Programming› 2018; submit interesting papers!

  • February 28, 2017: I will be lecturing on Declarative Language Definition at the ECOOP 2017 Summer School


Open Positions

  • I have an opening for a PhD student in software language engineering

  • Postdoc candidates: contact me if you are interested in submitting a proposal to the LEaDing Fellows program for Marie Curie postdoc positions starting in May 2019; next deadline is October 31, 2018.

  • I am looking for student programmers

If you would be interested in working with me, send me an email.


Full contact information

TU Delft Programming Languages Group


I lead the Software Language Design and Engineering research program. Our mission is to enable software engineers to effectively design, implement, and apply domain-specific languages. We are doing research in three tracks:

  • Language engineering: investigate the automatic derivation of efficient, scalable, incremental compilers and usable IDEs from high-level, declarative language definitions

  • Semantics engineering: investigate the automatic verification of the consistency of language definitions in order to check properties such as type soundness and semantics preservation

  • Language design: investigate the systematic design of domain-specific software languages with an optimal tradeoff between expressivity, completeness, portability, coverage, and maintainability.

Research overview



Project overview

Recommended Publications


Name binding

Dynamic semantics

Integrated development environments

Transformation and analysis

Syntax definition and parsing

Language composition

Programming with relations

Abstractions for web programming

More publications | biggest hits

Current Activities

All my professional activities | Presentations


MetaBorg provides generic technology for allowing a host language (collective) to incorporate and assimilate external domains (cultures) in order to strengthen itself. The ease of implementing embeddings makes resistance futile.

From Concrete syntax for objects