A Language for Defining Model Editors Using Sirius
Rascal is a meta programming language for source code analysis and transformation. Rascal is also used as a language workbench for the definition of domain-specific languages (DSLs); languages are described using context-free grammars (concrete syntax) and algebraic data types (abstract syntax).
In model-driven engineering (MDE), it is common to employ graphical modeling editors for manipulating DSLs. The de facto standard editor framework in Eclipse is Sirius. The goal of this project is to explore an high-level mapping language for defining such graphical model editors. You will design a bridge that will allow DSL designers to concisely and declaratively define graphical editors, so that the resulting models can be processed from within Rascal.
In particular this problem involves:
- An exploration of alternative ways of mapping a language's abstract syntax and binding structure to the internal models of Sirius.
- Based on this analysis, you will design a mapping/bridge/binding between Rascal data and Sirius
- You will evaluate your approach by defining graphical editors for one ore more small DSLs built with Rascal.
- Paige et al., Metamodelling for Grammarware Researchers, SLE'12.
- Eclipse Sirius
- Filippelli et al., Concepts for the model-driven generation of graphical editors in Eclipse by using the Graphiti framework
Contact: Tijs van der Storm