demanding first class equality for domain specific aspect
play

Demanding First-Class Equality for Domain Specific Aspect Languages - PowerPoint PPT Presentation

Demanding First-Class Equality for Domain Specific Aspect Languages Arik Hadas Dept. of Mathematics and Computer Science The Open University of Israel Joint Work With: David H. Lorenz Domain Specific Aspect Languages COOL RIDL KALA DSALs


  1. Demanding First-Class Equality for Domain Specific Aspect Languages Arik Hadas Dept. of Mathematics and Computer Science The Open University of Israel Joint Work With: David H. Lorenz

  2. Domain Specific Aspect Languages COOL RIDL KALA DSALs AOP DSLs AO4SQL AspectGrid Racer

  3. DSALs are Second-class ● Second-class DSLs – Not as easy to develop and to use ● Second-class AOP languages – Incompatible with AOP tools

  4. Background 2005 Language DSL workbenches: The killer-app for domain specific languages DSAL abc: an extensible AspectJ compiler

  5. Background 2005 Language DSL workbenches: The killer-app for domain specific languages DSAL abc: an extensible AspectJ compiler

  6. Background 2005 Since 2005 Language Language DSL workbenches: The workbenches (LW) killer-app for – xtext, MPS, Spoofax domain specific languages DSAL AOP composition abc: an frameworks (CF) extensible AspectJ – Reflex, XAspects, compiler A WESOME

  7. Background 2005 Since 2005 Language Language DSL workbenches: The workbenches (LW) killer-app for – xtext, MPS, Spoofax domain specific languages DSAL AOP composition abc: an frameworks (CF) extensible AspectJ – Reflex, XAspects, compiler A WESOME

  8. Background 2005 Since 2005 Language Language DSL workbenches: The workbenches (LW) killer-app for – xtext, MPS, Spoofax domain specific languages DSAL AOP composition abc: an frameworks (CF) extensible AspectJ – Reflex, XAspects, compiler A WESOME But no workbench solution for DSALs

  9. Language Workbench (LW) DSL Code Language Workbench Language Workbench Java javac javac Bytecode

  10. Language Workbench (LW) DSL Code Language Workbench Language Workbench Java javac javac Bytecode

  11. Using LW for DSAL DSL Code DSAL Code Language Workbench Language Workbench Java No Aspects javac javac Bytecode

  12. Using LW for DSAL DSL Code DSAL Code Language Workbench Language Workbench Java No Aspects javac javac Bytecode

  13. LW for AspectJ DSAL Code Language Workbench Language Workbench Java AspectJ javac ajc Bytecode No Multiple Woven Bytecode DSALs

  14. DSAL Complexity ● Unlike DSL, DSAL tackles crosscutting concerns DSALs DSLs

  15. Looking for a DSAL Workbench Language AOP Workbench Composition Framework Tools for creation &   usage of languages Defining weaving   semantics needed for DSALs

  16. Looking for a DSAL Workbench Language AOP Workbench Composition Framework Tools for creation &   usage of languages Defining weaving   semantics needed for DSALs Will a naive combination of the two be a proper solution?

  17. Naive Combination of LW and CF DSAL Code Language Workbench Language Workbench AspectJ ajc Composition Framework Woven Bytecode First-class DSL

  18. But Still Second-class AOP DSAL Code Compiling Language Workbench Language Workbench Browsing AspectJ Composition Framework Woven Bytecode Debugging

  19. Traditional LW Architecture DSAL Code Language Workbench Language Workbench Code Transformation AspectJ Composition Framework Woven Bytecode

  20. DSAL Workbench Architecture DSAL Code Language Workbench Language Workbench AspectJ DSAL Code Code Transformation Composition Framework Composition Framework Woven Bytecode First-class AOP

  21. DSAL Workbench Architecture DSAL Code Standalone Can generate debugging & DSAL compile r browsing information Language Workbench Language Workbench DSAL Code Code Transformation Composition Framework Composition Framework Woven Bytecode First-class AOP

  22. Implementation DSAL Code Spoofax Spoofax DSAL Code Code Transformation A WESOME* A WESOME* Woven Bytecode

  23. Example: First Class COOL

  24. DSAL “Bill of Rights” • Freedom of Expression • Syntactic • Semantic • Economic Freedom • Cost effective Implementation • Cost effective Usage • Freedom of Assembly • DSL Interoperability • Equality with domain-specific languages and AOP languages

  25. Related Work ● Language Workbenches – [Fowler, 2005] Language workbenches: The killer-app for domain specific languages. – [Kats and Visser, 2005] The Spoofax language workbench: Rules for declarative specification of languages and IDEs. – [Lorenz and Rosenan, 2011] Cedalion: A language for language oriented programming. ● AOP Composition Frameworks – [Kojarski and Lorenz, 2005] Pluggable AOP: Designing aspect mechanisms for third-party composition. – [Lorenz and Kojarski, 2007] Understanding aspect interaction, co-advising and foreign advising. – [Kojarski and Lorenz, 2007] Awesome: An aspect co-weaving system for composing multiple aspect-oriented extensions.

  26. Conclusion ● A novel design for DSAL workbench that produces first-class DSAL – First-class DSL – First-class AOP language ● Prototype comprising Spoofax and A WESOME* ● Plug-in for COOL as a first-class DSAL

  27. Thank You! Arik Hadas and David H. Lorenz Dept. of Mathematics and Computer Science The Open University of Israel arik.hadas@openu.ac.il https://github.com/OpenUniversity

Recommend


More recommend