SERG at 2009 kickoff

This is the kicking off the year meeting of the Software Engineering Research Group of TU Delft in January 2009. I took lots of pictures that day and this group portrait. The group shot didn’t work very well as it had strong backlight. I never processed the photos of that day, despite starting several time. Now it turns out that a black and white rendering of the shot makes it work. Sometimes you have to see things in a different light.

That period was also the start of building up a large photo processing backlog. Today, I’ve decided to start doing something about that. Follow my progress on flickr.

Photos from the London meeting of the IFIP Working Group on Language Design held at the end of February 2012. More on flickr

Roberto Ierusalemschi Tijs van der Storm Daan Leijen Jonathan Edwards Erik Ernst Tom van Cutsem

Episode four of Everything is a Remix discusses the evolution of intelectual property tools from promoting creativity and a flourishing public domain to restricting ideas to a walled garden, inhibiting memetic evolution. “The believe in intelectual property has grown so dominant, it has pushed the original intent of copyright and patents out of the public consciousness.”

Read more

Last week I started teaching a new edition of @TI1220, the first year, second semester, course on concepts of programming languages. Last year I taught the course for the first time and modernized it. Instead of using Haskell to teach functional programming I decided to use Scala. This was partially based on the observation that master’s students who took the Haskell-based course had no FP skills to speak of. As Scala ties in more easily with real world application programming than Haskell, I hope more students will come back to FP. In the second part of the semester I teach C, in order to discuss memory management, and JavaScript, for its prototype-based inheritance.

For this second year I have decided to develop a web application to support the lab exercises as well as the exam. Last year I did a multiple-choice exam, which was good for grading, but not a good medium for asking programming language questions. Thus, I want a system that allows me to ask programming questions, but that I can still grade efficiently, preferably automatically. Thus, this year I have introduced the WebLab application in the course. (Due to authentication policy the application is only available to people with a TU Delft netid at the moment.) In this blog post a discussion of the first version of the system that we launched last week.

Read more

Paper about refactoring support for Spoofax accepted at LDTA’12:

Maartje de Jonge, Eelco Visser. A Language Generic Solution for Name Binding Preservation in Refactorings. In Suzana Andova, Anthony M. Sloane, editors, Workshop on Language Descriptions, Tools, and Applications, Proceedings. 2012.

Abstract: The implementation of refactorings for new languages requires considerable effort from the language developer. We aim at reducing that effort by using language generic techniques. This paper focuses on behavior preservation, in particular the preservation of name bindings. Given an existing name analysis, we implement a language generic technique to detect name binding violations. Some languages offer the possibility to access global variables using qualified names. As a refinement to violation detection, we show that name analysis can be defined as a reusable traversal strategy that can be applied to restore name bindings by creating qualified names. These techniques offer an efficient and reliable solution; the semantics of the language is implemented only once, with the compiler being the single source of truth. We evaluate our approach by implementing a language generic rename refactoring, which we apply to different languages.