April 9-11th 2014
Churchill College, Cambridge UK


Session Title

Interactive Language Design with the Spoofax Language Workbench

Session Type Hands-On
Duration 180 minutes
Session Description

The Spoofax language workbench is a platform for the development of textual software languages with state-of-the-art IDE support. Spoofax provides a comprehensive environment that integrates syntax definition, name-binding, static analysis, program transformation, code generation, and declarative specification of IDE components. It supports agile development of languages by allowing incremental, iterative development of languages and showing editors for the language under development alongside its definition.

During this hands-on session, participants will learn the principles and techniques for the design and implementation of software languages in Spoofax. They will develop a small DSL, using Spoofax’s high-level DSLs for language engineering. Spoofax’s testing language enables test-driven language engineering. The syntax definition formalism SDF supports modular definition of (composite) languages. The name binding language NaBL enables declarative definitions of name binding and scope rules of software languages. The type specification language TS supports declarative definitions of type systems of software languages. The Stratego transformation language unifies model transformation and code generation.

NB This is a hands-on session, please bring a laptop or be prepared to share with another participant.


Guido Wachsmuth (Delft University of Technology)

Guido Wachsmuth is an assistant professor at Delft University of Technology where he designs and implements new declarative metalanguages for the Spoofax language workbench, including languages for name binding (NaBL) and type systems. He teaches an MSc course on compiler construction, where students use the Spoofax language workbench to implement a subset of Java.

Gabriël Konat (Delft University of Technology)

Gabriël Konat is a PhD student at Delft University of Technology. His research interests include software language engineering, domain specific languages, declarative meta-languages and their efficient implementation. He currently works on incremental name and type analyses, which can be automatically derived from declarative specifications in the Spoofax Language Workbench. Gabriel received an MSc at Delft University of Technology and interned at Oracle labs.