This week the following question was posed (and not properly answered) on the Stratego/XT mailing list and came up independently in a discussion with Peter Mosses about the syntax of OCaml. I had seen the problem and a solution to it before. I think it was Martin Bravenboer who used it in the syntax of AspectJ; but I can't find the source.

The Problem

The expression

    x + if y then z + a

should be parsed to the following abstract syntax tree:

    Plus(Var("x"), If(Var("y"), Plus(Var("z"), Var("a"))))

The problem is that this cannot be solved directly using ambiguous binary expressions and just priorities and associativity declarations in SDF. But that does not mean there is no solution.

Read more

I started using github last year for the code of my blog application. Now we have started the migration of source code of projects at the TU Delft SLDE group from existing subversion repositories to github as well. Rather than a big bang migration, we're incrementally moving projects over, starting with smaller libraries such as my elib library for WebDSL. We're collecting WebDSL projects in the webdsl organization. We'll be starting with the migration of the Spoofax/SDF/Stratego repositories in December. At least this move will relieve us of having to maintain our own subversion server (although this migration will take a while), and hopefully it will lower the barrier for external contributions.

The TU Delft Software Engineering Research Group SERG has an opening for a Assistant or Associate Professor in Software Engineering. Prospective candidates are invited to apply before December 13, 2012.

Full announcement

Candidates with a research interest in Domain-Specific Languages, Software Language Engineering, Language Workbenches are encouraged to apply.

Language workbenches have been segregated into those supporting textual languages and those supporting visual languages. The projectional editor based MPS has been making some first steps in combining text-like projections and more graphical projections. In the Spoofax project we have stayed away from visual languages. (There is plenty to do in supporting design of textual languages well.) Until this year.

In the Spring of 2012 TU Delft student Oskar van Rest started his Master's thesis project at the University of Queensland (Australia). He has been working on the integration of visual languages in the Spoofax Language Workbench. As case study of the integration he constructed ComBE:

ComBE provides an integrated textual and graphical editor for Behavior Engineering. It synchronises text and graphics in real-time and allows you to switch between editors at any moment in time.

He recently presented a poster about the project and created a screencast showing off the side-by-side editing of text and diagram.

Update 24/3/2013: paper Robust Real-Time Synchronization between Textual and Graphical Editors to appear in ICMT 2013

Read more

The citation count of a scientific publication is considered to be an indicator for its impact. Google Scholar includes citation counts for publications and uses this as an important metric for ranking search results. Thus, a paper with many citations is more likely to show up in search results. That makes it more likely that it will be read and cited, resulting in even more citations. This makes literature search with Scholar quite effective. But one effect is that new papers (no citations initially) in an existing field may not be noticed, even if they have relevant results. Papers with many citations hide (shadow) papers with few citations. This mechanism may even be at work in the publications of a single author.

When I examined my Google Scholar author profile before, it was mostly to examine my h-index and top cited publications. And I was happy enough to see that a good number of my publications are being cited well (today my h-index is 35). However, there are more publications with fewer citations. That is to be expected. Not all publications are equally good or important. What I noticed however, is that some papers that I consider to be among the best work of me and my students, are poorly cited. Therefore, I decided to compose a list of recommended publications for the front page of my web site, instead of the usual suspects from the hit list. If you like those other papers, you may like these as well (or even better):


Syntax definition and parsing

Language composition

Transformation and analysis

Integrated development environments

Abstractions for web programming

More publications