I have posted two open positions in Software Language Engineering in my group at TU Delft:

  • The Department of Software and Computer Technology of TU Delft has a four year PhD position in Programming Language Verification in the NWO VICI project "The Language Designer's Workbench. Automating the Verification of Language Definition" of Eelco Visser.

  • The Department of Software and Computer Technology of TU Delft has a position for a WebDSL programmer to help us improve and expand The Department, a suite of web applications for organizing academic workflows developed using the state-of-the-art WebDSL web programming language.

More positions will be available in the (near) future. In particular, I'll be looking for a Postdoc in language verification soon.

The last time I had open positions, I was extremely annoyed by the tediousness of managing applications by email. Of course, at that time I didn't have WebDSL. Now, I do. So I developed a web application to manage the workflow of the job application process. Applicants submit their materials using a form that can be customized for each position. Reference letters can be requested at the push of a button and submitted with the application as well. Stakeholders in the position can record the discussion about each applicant. Communication with the applicant can also be done and recorded via the application. Applicants can be ranked with a simple up/down voting mechanism. With this application in place I'm actually looking forward to the process and your applications!

(Of course, the application is generic. If you are a job creator and need to support for the application workflow you can use Department Jobs too. Just create an account and get in touch with me to enable job creation.)

From the new MetaBorg blog:

We are happy to announce the release of Spoofax 1.1! This is the first major release since version 1.0.1 and includes major features and improvements. Spoofax 1.1 supports all current Eclipse versions, up to version 4.2.2.

The MetaBorg site is intended to unify all material on Spoofax, SDF, Stratego, and NaBL.

Our paper about the integration of graph editors into the Spoofax Language Workbench, also known as Spoofax Modelware, was accepted for the ICMT 2013 conference.

Oskar van Rest, Guido Wachsmuth, Jim Steel, Jörn Guy Süss, and Eelco Visser. Robust Real-Time Synchronization between Textual and Graphical Editors. International Conference on Model Transformation (ICMT 2013). Budapest, June 2013.

Abstract. In modern Integrated Development Environments (IDEs), textual editors are interactive and can handle intermediate, incomplete, or otherwise erroneous texts while still providing editor services such as syntax highlighting, error marking, outline views, and hover help. In this paper, we present an approach for the robust synchronization of interactive textual and graphical editors. The approach recovers from errors during parsing and text-to-model synchronization, preserves textual and graphical layout in the presence of erroneous texts and models, and provides synchronized editor services such as selection sharing and navigation between editors. It was implemented for synchronizing textual editors generated by the Spoofax language workbench and graphical editors generated by the Graphical Modeling Framework.

Update: Now available as Technical Report TUD-SERG-2013-009

With Tijs van der Storm and William Cook I'm organizing a Lorentz Center workshop on Language Interaction Design.

Description: Software programs are the carriers of computational knowledge. Their construction is governed by the formal syntactic and semantic rules of a programming language. Programming language design typically focuses on notation, programming models, and semantics. However, such designs typically ignore the interaction of software developers with program code.

Integrated development environments (IDE) increase the productivity of programmers by supporting them in the interactive construction and maintenance of programs. For example, syntax highlighting distinguishes different categories of words in a program, and helps in signposting and visualizing the structure of programs; inline error markers indicate syntactic and semantic problems where they occur instead of in a separate error list; code completion supports discovery of available functionality; and hyperlinking of identifiers allows navigation along definition chains across compilation units.

Traditionally, development environments are post-hoc artifacts, retrofitting interaction design to existing languages. For example, due to its dynamic nature it is hard to provide reliable program understanding services for JavaScript programs.

We propose language interaction design as the integration of interaction design in programming language design, reserving a key role for language interaction in the design process. Research in language interaction design studies the interplay between programming language design and programming environments, identifying beneficial and harmful design patterns that can inform language designers in an early stage of the design process.

The goal of this workshop is to lay the foundations for a discipline of language interaction design by bringing together a select group of leading researchers from the fields of programming languages, domain-specific languages (DSLs), model-driven development (MDD) and human-computer interaction (HCI). The workshop will be considered a success if it produces a joint understanding of language interaction design through the formulation of a taxonomy and a research agenda based on a series of case studies.

office gridpic

gridpic is a very cool iOS application by Wouter van Oortmerssen that allows anyone to make their own David Hockney pictures. (Well, a bit more variation than the strict grid would be nice; but this is a good start.) Wouter has some great examples on his site.