Context Domain-level feedback Demo Conclusion Domain-Level Debugging for Compiled DSLs with the GEMOC Studio (Tool Demo) Erwan Bousse Tanja Mayerhofer Manuel Wimmer TU Wien (Austria) September 17, 2017 Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 1/8
Context Domain-level feedback Demo Conclusion 1 Context 2 Domain-level feedback 3 Demo 4 Conclusion Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 2/8
Context Domain-level feedback Demo Conclusion (Domain-level) interactive debugging Many existing approaches to define Domain Specific Languages (DSLs) with execution semantics. Enable the use of interactive debugging (ie. breakpoints, step into, etc.) to understand and investigate defects. Two main kinds of DSLs to consider: – interpreted DSLs (with operational semantics) – compiled DSLs (with translational semantics) Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 3/8
Context Domain-level feedback Demo Conclusion (Domain-level) interactive debugging Many existing approaches to define Domain Specific Languages (DSLs) with execution semantics. Enable the use of interactive debugging (ie. breakpoints, step into, etc.) to understand and investigate defects. Two main kinds of DSLs to consider: – interpreted DSLs (with operational semantics) – compiled DSLs (with translational semantics) Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 3/8
Context Domain-level feedback Demo Conclusion Interpreted VS compiled DSLs Depends on / Uses Conforms to Input/output Modi fi es Procedure Model Generated Model Runtime services Provides services at runtime by observing occuring steps and the changing state Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 4/8
Context Domain-level feedback Demo Conclusion Interpreted VS compiled DSLs Interpreted DSL Depends on / Uses Abstract Conforms to syntax Input/output Modi fi es State de fi nition Procedure Model Execution rules Generated Model Runtime services Provides services at runtime by observing occuring steps and the changing state Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 4/8
Context Domain-level feedback Demo Conclusion Interpreted VS compiled DSLs Interpreted DSL Depends on / Uses Abstract Conforms to syntax Input/output Modi fi es Executed State model de fi nition Procedure Model Execution rules Generated Model Runtime services Provides services at runtime by observing occuring steps and the changing state Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 4/8
Context Domain-level feedback Demo Conclusion Interpreted VS compiled DSLs Interpreted DSL Depends on / Uses Abstract Conforms to syntax Input/output Modi fi es Executed State model de fi nition Procedure Model Exec. Execution Engine rules Generated Model Runtime services Provides services at runtime by observing occuring steps and the changing state Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 4/8
Context Domain-level feedback Demo Conclusion Interpreted VS compiled DSLs Interpreted DSL Depends on / Uses Abstract Conforms to syntax Input/output Modi fi es Executed State model de fi nition Procedure Runtime Model services Exec. Execution Engine rules ... Generated Model Tracer Exec. Debugger steps Runtime services Provides services at runtime by observing occuring steps and the changing state Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 4/8
Context Domain-level feedback Demo Conclusion Interpreted VS compiled DSLs Interpreted DSL Target language Depends on / Uses T arget Abstract abstract Conforms to syntax syntax Input/output Target T arget Modi fi es Executed State executed state model de fi nition model de fi nition Procedure Runtime Model services T Exec. arget Execution Engine Engine rules ... Generated Model Tracer Exec. Target Debugger steps steps Runtime services Provides services at runtime by observing occuring steps and the changing state Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 4/8
Context Domain-level feedback Demo Conclusion Interpreted VS compiled DSLs Source compiled DSL Interpreted DSL Target language Depends on / Uses T arget Source Abstract abstract abstract Compiler Conforms to syntax syntax syntax Input/output Target T arget Modi fi es Executed State executed state model de fi nition model de fi nition Procedure Runtime Model services T Exec. arget Execution Engine Engine rules ... Generated Model Tracer Exec. Target Debugger steps steps Runtime services Provides services at runtime by observing occuring steps and the changing state Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 4/8
Context Domain-level feedback Demo Conclusion Interpreted VS compiled DSLs Source compiled DSL Interpreted DSL Target language Depends on / Uses T arget Source Abstract abstract abstract Compiler Conforms to syntax syntax syntax Input/output Source Target T arget Modi fi es Executed State executed executed state model de fi nition model model de fi nition Procedure Runtime Model services T Exec. arget Execution Engine Engine rules ... Generated Model Tracer Exec. Target Debugger steps steps Runtime services Provides services at runtime by observing occuring steps and the changing state Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 4/8
Context Domain-level feedback Demo Conclusion Interpreted VS compiled DSLs Source compiled DSL Interpreted DSL Target language Depends on / Uses T arget Source Abstract abstract abstract Compiler Conforms to syntax syntax syntax Input/output Source Target T arget Modi fi es Executed State executed executed state model de fi nition model model de fi nition Procedure Runtime Model services How to connect? T Exec. arget Execution - No explicit source states Engine Engine rules ... Generated - No explicit source steps Model Tracer Exec. Target Debugger steps steps Runtime services Provides services at runtime by observing occuring steps and the changing state Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 4/8
Context Domain-level feedback Demo Conclusion Problem How to provide domain-level interactive debugging when executing models conforming to compiled DLSs? Idea At runtime, automatically translate on-the-fly target states and steps into source states and steps, which can then be observed by domain-level tools. Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 5/8
Context Domain-level feedback Demo Conclusion Problem How to provide domain-level interactive debugging when executing models conforming to compiled DLSs? Idea At runtime, automatically translate on-the-fly target states and steps into source states and steps, which can then be observed by domain-level tools. Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 5/8
Context Domain-level feedback Demo Conclusion Overview Source compiled DSL Target language Interpreted DSL Depends on / Uses Source T arget Abstract abstract Compiler abstract Conforms to syntax syntax syntax Input/output Modi fi es Source Target T arget Executed State executed executed state model de fi nition model Procedure model de fi nition Runtime Model services T Exec. arget Execution Engine Engine rules ... Generated Model Tracer Target Exec. Debugger steps steps Result The same runtime services can be (re)used for both interpreted and compiled DSLs! Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 6/8
Context Domain-level feedback Demo Conclusion Overview Source compiled DSL Target language Interpreted DSL Depends on / Uses Source T arget Abstract abstract Compiler abstract Conforms to syntax syntax syntax Input/output Modi fi es Source Source Source Target T arget Executed State executed state executed executed state model de fi nition model Procedure de fi nition model model de fi nition Runtime Model services How to connect? T Exec. arget Execution - No explicit source states Engine Engine rules ... Generated - No explicit source steps Model Tracer Target Exec. Part of the approach Debugger steps steps Result The same runtime services can be (re)used for both interpreted and compiled DSLs! Erwan Bousse, Tanja Mayerhofer, Manuel Wimmer Domain-Level Debugging for Compiled DSLs 6/8
Recommend
More recommend