Last month I presented our paper about our vision of a language designer’s workbench at Onward! 2014 in Portland. Here are the slides of that presentation:

A Language Designer’s Workbench: A One-Stop-Shop for Implementation and Verification of Language Designs. Eelco Visser, Guido Wachsmuth, Andrew P. Tolmach, Pierre Neron, Vlad A. Vergu, Augusto Passalaqua, Gabriël Konat. OOPSLA 2014: 95-111

Abstract: The realization of a language design requires multiple artifacts that redundantly encode the same information. This entails significant effort for language implementors, and often results in late detection of errors in language definitions. In this paper we present a proof-of-concept language designer’s workbench that supports generation of IDEs, interpreters, and verification infrastructure from a single source. This constitutes a first milestone on the way to a system that fully automates language implementation and verification.

We have an opening for a PhD student to work on automatic grading and tutoring in online courses. In particular, we are interested in automatic feedback and assessment techniques that we can apply in programming education. The results of the research will be applied and evaluated in several courses at TU Delft and other universities.

We are looking for a candidate with a Master’s degree (or equivalent) in computer science or a related discipline, a passion for online education, and a broad interest including systems programming, compilers, language engineering, programming environments, web programming, machine learning, interaction design, education research, and teaching.

For more information about the position see

This morning I gave a keynote talk at Modularity 2014 about declarative meta-languages in Spoofax. The abstract of the talk was published in the proceedings.

Abstract: Effectively applying linguistic abstraction to emerging domains of computation requires the ability to rapidly develop software languages. However, a software language is a complex software system in its own right and can take significant effort to design and implement. We are currently investigating a radical separation of concerns in language definition by designing high-level declarative meta-languages specialized to the various concerns of language definition that can be used as the single source of production quality (incremental) semantic operations and as a model for reasoning about language properties.

Note that a considerable part of the talk consisted of demonstration, which is not reflected in the slides. I added the Spoofax project that I used in the demo to github.


The TU Delft Software Language Design and Engineering group at group meeting in April 2014.

Top row, left to right:

  • Vlad Vergu
  • Danny Groenewegen
  • Eduardo Amorim
  • Pierre Neron

Bottom row, left to right:

  • Eelco Visser
  • Augusto Passalaqua
  • Guido Wachsmuth
  • Gabriël Konat


  • Elmer van Chastelet


The TU Delft Software Engineering Research Group in April 2014 group meeting