The Spoofax Language Workbench
The Spoofax language workbench is a platform for developing textual (domain-specific) programming languages. The platform provides the following ingredients:
- Meta-languages for high-level declarative language definition with specialized support for definition of syntax, static semantics, dynamic semantics, and transformations
- An interactive environment for developing languages using these meta-languages
- Code generators that produces parsers, type checkers, compilers, interpreters, and other tools from language definitions
- Generation of Eclipse editor plugins from language definitions
- An API for programmatically combining the components of a language implementation
In this talk, I will give an overview of Spoofax, illustrating language definition with a small example, and discuss development and applications.
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 (SDF2, SDF3), program transformation (Stratego), name binding (NaBL), dynamic semantics (DynSem), software deployment (Nix), web application development (WebDSL), and mobile phone applications (mobl). In the language designer’s workbench project he is pursuing high-level declarative language definition that serves for language implementation and verification.
Fri 23 Jun
|10:30 - 11:20|
Eelco VisserDelft University of TechnologyLink to publication
|11:20 - 12:10|