Users of Stratego/Spoofax often express confusion about the dynamic rules feature of the language. There is a reason for that, since dynamic rules are often used to simulate global variables and stateful programming. However, the feature was developed for more interesting use cases. The approach provides an elegant example of how to combine analysis and transformation, which is nicely demonstrated by the definition of partial evaluation, for example. A more important problem is that it is not clear how to make transformations with dynamic rules incremental, which is a requirement in interactive development environments. In considering new designs to realize incremental, interactive context-sensitive transformations, I think it is useful to be at least be aware of the original design goals and capabilities of dynamic rules in Stratego.

I'll be giving a talk about dynamic rules in our Software Language Engineering Meeting at November 5 at TU Delft. For those who cannot attend, here are some pointers to papers

and a couple of slide decks (with quite a bit of overlap):

Read more

Paul Klint

On the occasion of Paul Klint's retirement, I wrote a small essay about the role of linguistic abstraction in understanding software. The paper should be published in an upcoming special issue of Science of Computer Programming. A pre-print is available as TUD-SERG technical report

Abstract: In this essay, I argue that linguistic abstraction should be used systematically as a tool to capture our emerging understanding of domains of computation. Moreover, to enable that systematic application, we need to capture our understanding of the domain of linguistic abstraction itself in higher-level meta languages. The argument is illustrated with examples from the SDF, Stratego, Spoofax, and WebDSL projects in which I explore these ideas.


Back from a long vacation in Sweden and Norway with a ton of photos. Unfortunately, most look rather drab on first inspection. But with a bit of photoshop love a couple will be worthwhile. Here's a first taste. A photo of Bente taken on deck of the ferry from Kiel to Göteborg with the full moon in the background. Magical light. In post-processing the value of the Mark III shows its value; so much detail to be explored. Have a look at the larger sizes on flickr. More to come, but post-processing time is scarce as usual.

Yesterday I learned that the board of TU Delft has appointed me as Antoni van Leeuwenhoek Professor.

Update July 2, 2013: Eelco Visser benoemd tot AvL-hoogleraar (TU news):

Eelco Visser van de faculteit EWI is benoemd tot Antoni van Leeuwenhoekhoogleraar. Deze leerstoelen zijn bedoeld om jonge, excellente wetenschappers vroegtijdig te bevorderen tot hoogleraar zodat zij hun wetenschappelijke carrière maximaal kunnen ontwikkelen.

and in english: Eelco Visser appointed AvL Professor:

Eelco Visser of the Faculty of EEMCS has been appointed Antoni van Leeuwenhoek professor. The aim of these chairs is to promote young academics who produce excellent work to the position of Professor at an early stage, so that they can develop their academic careers to the fullest possible extent.

Update July 14: Not everyone (on twitter) understood the meaning of the announcement above. Let me explain the context and its implications.

Professor of Computer Science: First of all, the appointment means a promotion to 'full professor' or 'hoogleraar' (highteacher) in dutch.

This has several practical implications. First, I now legally carry the title of 'professor'. We use 'assistant professor' and 'associate professor' as english equivalents of 'universitair docent' and 'universitair hoofddocent', respectively, but these ranks are not (officially) addressed as 'professor'. Second, it means dressing up in gown on formal occasions such as PhD defenses. (This an actual improvement, since it saves a trip to Kloeg in the center of Delft to change!) Third, and most importantly, this means I can finally take full responsibility and credit for advising my PhD students. In the dutch system only a full professor can be the primary responsible advisor ('promotor') of a PhD student who signs off on a dissertation. This means that assistant and associate professors depend on a full professor to 'promote' their PhD students, even if they did all the work from acquiring grants to daily supervision. This unfortunate situation is formalized in dutch law. While many academics in The Netherlands agree that promotion rights should be liberalized, there does not seem much movement in this direction.

Antoni van Leeuwenhoek Professor: So what is the meaning of the mysterious 'Antoni van Leeuwenhoek' prefix to the title? There is not much to find when searching online about its meaning other than a stream of appointment announcements.

The title is named after the 17th century Delft scientist

known as "the Father of Microbiology", and considered to be the first microbiologist. He is best known for his work on the improvement of the microscope and for his contributions towards the establishment of microbiology.

Quoting from Selection and appointment procedure for Antoni van Leeuwenhoek professors

An internal associate professor may be nominated for an AvL professorship, without external recruitment or an open vacancy for the position of professor being necessary. [..] The AvL professorship was created to give the greatest possible recognition to extremely gifted academics who fully satisfy Professor 2 criteria [..].

This should be read in the context that in The Netherlands, promotion to full professor from associate professor is not a standard career prospect even with abundant academic achievements; an old position needs to become vacant or a new position needs to be created to which one can apply.

Another aspect of the AvL appointment is that

[..] it enables such academics to commit themselves to teaching and research for several years during their most creative and productive phase without the onerous burden of leading a research team.

I am indeed looking forward to a most creative and productive new phase in my career. However, I will be leading a research team. With my VICI grant, other funding from NWO and Oracle, and the appointment of Guido Wachsmuth as Assistant Professor, I will be leading a team of some ten researchers and software developers. (For which we are recruiting.) But I am planning to do a considerable amount of hands on research myself :-).

Read more

The Department of Software and Computer Technology of TU Delft has a postdoc position in Semantics Engineering in the NWO VICI project The Language Designer's Workbench. Automating the Verification of Language Definition of Eelco Visser.