T2: Declare Your Language (Part 1): Hands-On Spoofax Tutorial
Language workbenches are tools aiming to reduce the gap between the design and implementation of (external domain-specific) programming languages. Given high-level descriptions of the syntax and semantics of a language, a workbench generates an implementation of an IDE and/or execution engine. This tutorial will demonstrate and discuss the state of declarative language definition in the Spoofax Language Workbench.
Part 1 (morning): Using a hands-on demonstration (in which participants can participate using the tutorial material provided on-line), we will explore syntax definition in SDF3, name binding and scope rules in NaBL, type constraints in TS, and dynamic semantics in DynSem. And we will see how these definitions are turned into a working IDE with static checking and an execution engine at the push of a button. Instructions for installing the workbench and tutorial material on your laptop will be posted in the week of January 4.
See also the second part of the tutorial.
The two parts can be attended independently.
Eelco Visser is Antoni van Leeuwenhoek Professor of Computer Science at Delft University of Technology. He received a master’s and doctorate in computer science from the University of Amsterdam in 1993 and 1997, respectively. Previously he served as postdoc at the Oregon Graduate Institute, as Assistant Professor at Utrecht University, and as Associate Professor at TU Delft.
His research interests include programming languages, software language engineering, domain-specific programming languages, program transformation, software security, and interaction design. With his students he has designed and implemented the Spoofax language workbench, as well as many domain-specific languages, including DSLs for syntax definition (SDF), program transformation (Stratego), software deployment (Nix), web application development (WebDSL), and mobile phone applications (mobl). He is the lead developer of the researchr bibliography management system and the WebLab learning management system.