It was quite the semester. I taught a new course on concepts of programming languages, and a new edition of a course on model-driven software development. I wrote several research proposals (with more to write in the pipeline), and was involved in quite a few new papers. The collaboration with Markus Voelter had a good start with two nice papers. I am program chair of WIR 2011, ICMT 2011, and Onward! 2011 and served on the PCs of LDTA 2011, SLE 2011, OOPSLA 2011, and MODELS 2011. And there was probably a lot more that I have blocked out. When summing it up like this it does not sound too bad, but this was one of the most hectic semesters in my career so far.

To compensate, I'm spending the first two weeks of June in the California Bay Area for a series of language design events. Starting today I'm attending the first meeting of the Working Group on Language Design hosted by Mark S. Miller at Google in Mountainview. We're going to have the in-depth discussions on language design that we're rarely having in conferences these days. Next week I'm attending the Programming Language Design and Implementation Conference. On June 8th I'm scheduled to give a TechTalk at Google Mountainview about WebDSL and Mobl. The trip ends with the OOPSLA 2011 PC meeting. In the fringes, I expect to meet many interesting people, including breakfast with Robert Hirshfeld and lunch with Terence Parr in San Francisco. And there should be time left in between for some recreational programming.

At the Google EMEA Faculty Summit 2011 I gave a talk about our research on software language design and engineering, with Mobl as example. The slides are on slideshare.

Read more

Much of the recent research on domain-specific language engineering that we conduct at TU Delft, which has produced Spoofax, WebDSL, and Mobl, has been funded by the Jacquard Software Engineering Research program of NWO, the Netherlands Organization for Scientific Research. To given an overview of the research program and stress its importance for society, Jacquard has produced a number of short movies about the projects it has funded, including an introduction and one about our Model-Driven Software Evolution (ModSE) project.

Read more

One of the ingredients of the Concepts of Programming Languages course I teach at TU Delft, is an introduction to the C language. In two lectures I went through the language, emphasizing functions, structs, pointers, and memory management based on Kernighan & Ritchie and a nice piece by Nick Parlante on Pointers and Memory. The students were supposed to be able to understand basics of expressions and control-flow from exposure to Java and Scala.

For the lab assignment, William Cook had given me the idea of expressing dynamic dispatch in a procedural language as a method (no pun intended) to understand both the OO mechanism and appreciate the difference (and hard work) of memory management in C. The idea seemed simple enough, but while understanding the idea conceptually, I had never actually done the exercise myself. Searching the web did not result in a whole lot of information, but for this example. In case anyone needs inspiration for their course, here is the text of the assignment I gave the students in which I explain the code in the example and provide a slightly larger Java program for them to translate. (Corrections of my poor understanding of dynamic dispatch or C are welcome as well.)

(Thanks to pandoc for helping convert LaTeX to Markdown.)

Read more

As soon as I announced that I had restored content from my old blog, a response followed about a bug. The page index at the bottom of the page overflowed, as previous applications did not have to deal with more pages than would fit on the breadth of the page. A quick fix was to set the overflow property of the content to hide so that the page index or any other content for that matter would no longer stick out of the content box. But that was not a real fix of course.

High time to generalize the pageIndex definition in the library.

Read more