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.

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.