T2: Declare Your Language (Part 2): Name Binding with Scope Graphs
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 2 (afternoon): The second part of the tutorial will be an interactive lecture on the theory of name resolution that we have developed as a semantics for name binding languages such as NaBL, and described in ESOP15 and PEPM16 papers. In the tutorial we will study the formal definition of the resolution calculus. But, more importantly, we will study many examples of scope graph diagrams for name binding patterns. By means of exercises, the audience is invited to apply their understanding of the approach. Bring pen and paper!
See also part 1 (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.