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.

The journal adaptation of our SLE 2009 paper on data validation for WebDSL has been published in a special issue on Model-Driven Web Engineering of the journal on Software and Systems Modeling:

Danny M. Groenewegen, Eelco Visser. Integration of Data Validation and User Interface Concerns in a DSL for Web Applications. Software and Systems Modeling, 12(1):35-52, February 2013. PDF

Abstract: Data validation rules constitute the constraints that data input and processing must adhere to in addition to the structural constraints imposed by a data model. Web modeling tools do not make all types of data validation explicit in their models, hampering full code generation and model expressivity. Web application frameworks do not offer a consistent interface for data validation. In this paper, we present a solution for the integration of declarative data validation rules with user interface models in the domain of web applications, unifying syntax, mechanisms for error handling, and semantics of validation checks, and covering value well-formedness, data invariants, input assertions, and action assertions. We have implemented the approach in WebDSL, a domain-specific language for the definition of web applications.

night shot

Some things deserve a reward. The full frame sensor means my 24-70 zoom lens now is a proper wide angle. This is a first night shot in automatic mode; no need for processing.

It is a great honor that the dutch national science foundation NWO has awarded my VICI proposal 'The Language Designer's Workbench' to investigate the building blocks of the next generation of language workbenches. The essence of the plan is to provide much better support to language designers by means of deep analyses of language definitions.

While the VICI grant is a personal grant, I feel it is also an award for the outstanding work done by the Stratego/XT and Spoofax teams over the last 15 years, which has provided the foundation for this new work. In particular, I would like to thank my PhD students and postdocs, in alphabetical order: Anya Helene Bagge, Martin Bravenboer, Sander van der Burg, Eelco Dolstra, Danny Groenewegen, Zef Hemel, Maartje de Jonge, Merijn de Jonge, Karl Trygve Kalleberg, Lennart Kats, Gabriƫl Konat, Karina Olmos, Vlad Vergu, Rob Vermaas, Sander Vermolen, Guido Wachsmuth.

With a budget of 1,500,000 Euro for five years I can compose a strong team of PhD students and postdocs. If you have a strong background in language engineering, compiler construction, program analysis, proof assistants, and/or mechanized meta-theory, and if you are interested in contributing to the future of software language engineering, consider applying for a PhD or postdoc position in the project.

Update February 5, 2013

Update April 30, 2013

Update June 2, 2013

Update June 15, 2013