The spoofax language workbench: rules for declarative specification of languages and IDEs. Spoofax is a language workbench for efficient, agile development of textual domain-specific languages with state-of-the-art IDE support. Spoofax integrates language processing techniques for parser generation, meta-programming, and IDE development into a single environment. It uses concise, declarative specifications for languages and IDE services. In this paper we describe the architecture of Spoofax and introduce idioms for high-level specifications of language semantics using rewrite rules, showing how analyses can be reused for transformations, code generation, and editor services such as error marking, reference resolving, and content completion. The implementation of these services is supported by language-parametric editor service classes that can be dynamically loaded by the Eclipse IDE, allowing new languages to be developed and used side-by-side in the same Eclipse environment.
Keywords for this software
References in zbMATH (referenced in 11 articles )
Showing results 1 to 11 of 11.
- van Binsbergen, L. Thomas; Mosses, Peter D.; Sculthorpe, Neil: Executable component-based semantics (2019)
- Joosten, Sebastiaan J. C.: Parsing and printing of and with triples (2017)
- Baar, Thomas: Verification support for a state-transition-DSL defined with Xtext (2016)
- Bettini, Lorenzo: Implementing type systems for the IDE with Xsemantics (2016)
- Cazzola, Walter; Giannini, Paola; Shaqiri, Albert: Formal attributes traceability in modular language development frameworks (2016)
- Reis, Leonardo V. S.; Di Iorio, Vladimir O.; Bigonha, Roberto S.: An on-the-fly grammar modification mechanism for composing and defining extensible languages (2015)
- Kahl, Wolfram: Towards “mouldable code” via nested code graph transformation (2014)
- Dinkelaker, Tom; Eichberg, Michael; Mezini, Mira: Incremental concrete syntax for embedded languages with support for separate compilation (2013) ioport
- Freudenthal, Margus: Simpl: a toolkit for domain-specific language development in enterprise information systems (2013)
- Rompf, Tiark; Sujeeth, Arvind K.; Amin, Nada; Brown, Kevin J.; Jovanovic, Vojin; Lee, HyoukJoong; Jonnalagedda, Manohar; Olukotun, Kunle; Odersky, Martin: Optimizing data structures in high-level programs, new directions for extensible compilers based on staging (2013)
- Hemel, Zef; Groenewegen, Danny M.; Kats, Lennart C. L.; Visser, Eelco: Static consistency checking of web applications with WebDSL (2011)