180 likes | 335 Views
Automaton-Based Approach for Defining Dynamic Semantics of DSLs. Ulyana Tikhonova ulyana.tihonova@gmail.com St. Petersburg State Polytechnical University, Russia Eindhoven University of Technology, The Netherlands. Supervised by : Suzana Andova Mark van den Brand Fedor A. Novikov.
E N D
Automaton-Based Approach for Defining Dynamic Semantics of DSLs UlyanaTikhonova ulyana.tihonova@gmail.com St. Petersburg State Polytechnical University, Russia Eindhoven University of Technology, The Netherlands Supervised by: SuzanaAndova Mark van den Brand FedorA. Novikov SET
Motivation • Domain-Specific Languages • design, implementation, maintenance • Model Driven Engineering DSL dynamic semantics DSL metamodel transformations programming languages verification languages simulation models SET
Motivation • Domain-Specific Languages • design, implementation, maintenance • Model Driven Engineering DSL metamodel DSL dynamic semantics transformations programming languages verification languages simulation models SET
Automaton-based solution • Executable dynamic semantics specification • Notation of UML state machine diagrams • AutoLanD DSL: executable UML for automata SET
AutoLanD DSL metamodel DSL dynamic semantics Interpretation Code generation Verification SET
The idea in detail Automata classes Semantics DSL metamodel «instanceOf» «instanceOf» Automata instances network DSL program ( A = {a, b, c} {c, d, e} ) interprets execute SET
Specified by a DSL designer Solution relationships between automata and metamodel AVM M1 input M0 Instantiated by AVM (automata virtual machine) execute Specified by a DSL user
Way 1 : generation of java-code relationships between automata and metamodel DSL metamodel automata EMFText + Xpand EMF metamodeljava-classes automata java-classes AVM java-class M1 M0 running Java SET
Way 2 : bootstrapping AutoLanDmetamodel Relationships between automata and metamodel AutoLanDsemantics Automaton structure Network model AVM M1 «instanceOf» «instanceOf» «instanceOf» M0 AutoLanD program input execute Automata network input-based generation AVM’ SET
Conclusions • AutoLanD is implemented yoo-hoo! • Code generation = programming: rapid implementation + testing • SOS: understanding of the core semantics + reconsidering a DSL design AutoLanD • Executability Accurate defining of all details • Design vs. programming ∑ SET
Open problems • Language for specifying mapping between metamodel-based input and automata network the higher-leveled definition of an AVM • Bootstrapping is not finished • Applying AutoLanD to some DSL SET
Thank you! vlaaai time? SET
Networkmetamodel SET
Scalability DSL dynamic semantics SET
Bootstrapping scheme «instanceOf» metamodel Set DSL Set model (program) semantics automata run compilation «instanceOf» metamodel AutoLanD DSL semantics automata run interpretation SET