The Spoofax Language Workbench
The Spoofax language workbench (https://www.metaborg.org/) is a platform for developing textual programming languages. The design philosophy of Spoofax is to use high-level declarative definitions of a programming language, and derive a wealth of useful tools from it. Spoofax provides domain specific languages (DSLs) for different aspects of a programming language definition, from which such tools are derived. The result is provided through Eclipse and IntelliJ IDE plugins, and through a Java API.
After an (interactive) introduction to some of the DSLs of Spoofax, we will together explore an existing language definition in Spoofax and add some features.
I am a PhD student in the Programming Languages Research Group at Delft University of Technology. I have various research interests around language design and compiler technology. I’ve worked on declarative specification of data-flow analysis, practical incremental compilation for existing languages, and gradual types. I’ve designed FlowSpec, a domain-specific language for the specification of data-flow analysis. For incremental compilation I’ve taken apart the compiler of the Stratego term transformation language, and reassembled it as an incremental compiler. FlowSpec and Stratego are part of the Spoofax Language Workbench. I am supervised by Eelco Visser.