skip to main content
10.1145/1739230.1739237acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

An architecture for composing embedded domain-specific languages

Published: 15 March 2010 Publication History

Abstract

Embedded domain-specific languages (EDSLs) are said to be easier to compose than DSLs that are implemented by preprocessors. However, existing approaches focus on composition scenarios where the use of abstractions from one domain does not affect the interpretation of abstractions from another domain. This leads to programs that exhibit scattering and tangling symptoms if multiple EDSLs with crosscutting domain semantics are used. To address this issue, we propose an architecture for embedding DSLs that makes use of meta-object protocols and aspect-oriented concepts to support crosscutting composition of EDSLs. This enables to write modularized EDSL programs where each program addresses one concern.

References

[1]
D. Almear. SQL AOP becomes SQXML AOP. http://almaer.com/blog/sql-aop-becomes-sqxml-aop.
[2]
A. Arkin, S. Askary, B. Bloch, et al. Web Services Business Process Execution Language 2.0, OASIS Standard, 2007.
[3]
AspectJ Home Page. http://www.eclipse.org/aspectj/.
[4]
P. Avgustinov, A. Christensen, L. Hendren, S. Kuzins, J. Lhotak, O. Lhotak, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. ABC: An Extensible AspectJ Compiler. LNCS, 3880:293, 2006.
[5]
P. Avgustinov, T. Ekman, and J. Tibble. Modularity First: A Case for Mixing AOP and Attribute Grammars. In AOSD, pages 25--35. ACM, 2008.
[6]
C. Bockisch, M. Mezini, W. Havinga, L. Bergmans, and K. Gybels. Reference Model Implementation. Technical Report AOSD-Europe-TUD-8, Technische Universität Darmstadt, 2007.
[7]
J. Brichau. Integrative Composition of Program Generators. PhD thesis, Vrije Universiteit Brussel, 2005.
[8]
J. Brichau, M. Mezini, J. Noyé, W. Havinga, L. Bergmans, V. Gasiunas, C. Bockisch, J. Fabry, and T. D'Hondt. An Initial Metamodel for Aspect-Oriented Programming Languages. http://www.aosd-europe.net/deliverables/d39.pdf, 2006.
[9]
A. Charfi and M. Mezini. Aspect-Oriented Workflow Languages. LNCS, 4275:183, 2006.
[10]
T. Cleenewerck. Component-Based DSL Development. In GPCE, pages 245--264. Springer, 2003.
[11]
T. Cleenewerck. Modularizing Language Constructs: A Reflective Approach. PhD thesis, Vrije Universiteit Brussel, 2007.
[12]
T. Dinkelaker, A. Johnstone, Y. Karabulut, and I. Nassi. Secure Scripting Based Composite Application Development: Framework, Architecture, and Implementation. In Conference on Collaborative Computing, pages 85--94. IEEE Computer Society, 2007.
[13]
T. Dinkelaker and M. Mezini. Dynamically Linked Domain-Specific Extensions for Advice Languages. In Workshop on Domain-Specific Aspect Languages (at AOSD), pages 3--9. ACM, 2008.
[14]
T. Dinkelaker, M. Mezini, and C. Bockisch. The Art of the Meta-Aspect Protocol. In AOSD, pages 51--62. ACM, 2009.
[15]
T. Dinkelaker, M. Monperrus, and M. Mezini. Untangling Crosscutting Concerns in Domain-Specific Languages with Domain-Specific Join Points. In Workshop on Domain-specific Aspect languages (at AOSD), pages 1--6. ACM, 2009.
[16]
G. Dubochet. On Embedding Domain-Specific Languages with User-Friendly Syntax. In Workshop on Domain-Specific Program Development (at ECOOP), pages 19--22, 2006.
[17]
T. Ekman and G. Hedin. The JastAdd Extensible Java Compiler. In OOPSLA, page 18. ACM, 2007.
[18]
J. Estublier, G. Vega, and A. Ionita. Composing domain-specific languages for wide-scope software engineering applications. LNCS, 3713:69, 2005.
[19]
J. Fabry and T. D'Hondt. KALA: Kernel Aspect Language for Advanced Transactions. In Symposium on Applied Computing, page 1620. ACM, 2006.
[20]
P. Fradet and M. Südholt. An Aspect Language for Robust Programming. LNCS, 1743:291--292, 1999.
[21]
A. Goldberg and D. Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, Boston, MA, USA, 1983.
[22]
J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification Second Edition. Addison-Wesley, Boston, Mass, 2000.
[23]
J. Gray and S. Roychoudhury. A Technique for Constructing Aspect Weavers using a Program Transformation Engine. In AOSD, pages 36--45, 2004.
[24]
I. Groher and M. Voelter. XWeave: Models and Aspects in Concert. In Workshop on Aspect-oriented modeling (at AOSD), page 40. ACM, 2007.
[25]
I. Groher and M. Voelter. Using Aspects to Model Product Line Variability. In Early Aspects Workshop (at SPLC), 2008.
[26]
The Groovy Home Page. http://groovy.codehaus.org/.
[27]
M. Haupt and H. Schippers. A Machine Model for Aspect-Oriented Programming. LNCS, 4609:501, 2007.
[28]
W. Havinga, L. Bergmans, and M. Aksit. Prototyping and Composing Aspect Languages using an Aspect Interpreter Framework. In ECOOP, page 180. Springer, 2008.
[29]
G. Hedin and E. Magnusson. JastAdd - An Aspect-Oriented Compiler Construction System. Science of Computer Programming, 47(1):37--58, 2003.
[30]
F. Heidenreich, J. Henriksson, J. Johannes, and S. Zschaler. On Language-Independent Model Modularisation. LNCS, 5560:39--82, 2009.
[31]
F. Heidenreich, J. Johannes, and S. Zschaler. Aspect Orientation for Your Language of Choice. In Workshop on Aspect-Oriented Modelling (at MoDELS), 2007.
[32]
J. Henriksson, F. Heidenreich, J. Johannes, S. Zschaler, and U. Aßmann. Extending grammars and metamodels for reuse: the Reuseware approach. IET Software, 2(3):165--184, 2008.
[33]
E. Hilsdale and J. Hugunin. Advice Weaving in AspectJ. In AOSD, pages 26--35. ACM, 2004.
[34]
C. Hofer and K. Ostermann. On the Relation of Aspects and Monads. In Workshop on Foundations of Aspect-Oriented Languages (at AOSD), page 33. ACM, 2007.
[35]
C. Hofer, K. Ostermann, T. Rendel, and A. Moors. Polymorphic Embedding of DSLs. In GPCE, 2008.
[36]
P. Hudak. Building Domain-Specific Embedded Languages. ACM Computing Surveys, 28(4):196, 1996.
[37]
P. Hudak. Modular Domain Specific Languages and Tools. In P. Devanbu and J. Poulin, editors, International Conference on Software Reuse, pages 134--142, 1998.
[38]
C. Kaewkasi and J. Gurd. Groovy AOP: A Dynamic AOP System for a JVM-based Language. In Workshop on Software Engineering Properties of Languages and Aspect Technologies, 2008.
[39]
G. Kiczales, J. d. Rivières, and D. G. Bobrow. The Art of the Metaobject Protocol. MIT Press, Cambridge, MA, 1991.
[40]
S. Kojarski and D. Lorenz. Awesome: An Aspect Co-Weaving System for Composing Multiple Aspect-Oriented Extensions. In OOPSLA, pages 515--534. ACM, 2007.
[41]
T. Kosar, M. López, E. Pablo, P. Barrientos, and M. Mernik. A Preliminary Study on Various Implementation Approaches of Domain-Specific Language. Information and Software Technology, 50(5):390--405, 2008.
[42]
H. Krahn, B. Rumpe, and S. Volkel. MontiCore: Modular Development of Textual Domain Specific Languages. In Conference Objects, Models, Components, Patterns, 2008.
[43]
C. Lopes. D: A Language Framework For Distributed Programming. PhD thesis, College of Computer Science of Northeastern University, 1997.
[44]
C. Lopes and T. Ngo. The Aspect-Oriented Markup Language and its Support of Aspect Plugins. Technical report, ISR Technical Report UCI-ISR-04-8, University of California, Irvine, 2004.
[45]
H. Masuhara, G. Kiczales, and C. Dutchyn. A Compilation and Optimization Model for Aspect-Oriented Programs. LNCS, 2622:46--60, 2003.
[46]
M. Mernik, J. Heering, and A. Sloane. When and How to Develop Domain-Specific Languages. ACM Computing Surveys (CSUR), 37(4):316--344, 2005.
[47]
M. Mernik, M. Lenic, E. Avdicausevic, and V. Zumer. Compiler/Interpreter Generator System LISA. In International Conference on System Sciences, page 8059. IEEE Computer Society, 2000.
[48]
N. Nystrom, M. Clarkson, and A. Myers. Polyglot: An extensible compiler framework for java. In LNCS, volume 2622, pages 138--152. Springer, 2003.
[49]
Official openArchitectureWare Homepage. http://www.openarchitectureware.org/.
[50]
M. Odersky, L. Spoon, and B. Venners. Programming in Scala. Artima Press, Mountain View, CA, 2007.
[51]
F. Peschanski. Jargons: Experimenting Composable Domain-Specific Languages. In Workshop on Scheme and Functional Programming, Firenze, Italy, 2001.
[52]
D. Rebernak, M. Mernik, H. Wu, and J. Gray. Domain-Specific Aspect Languages for Modularising Crosscutting Concerns in Grammars. IET Software, 3(3):184--200, 2009.
[53]
Ruby Programming Language. http://www.ruby-lang.org/.
[54]
The Scala Programming Language. http://www.scala-lang.org/index.html.
[55]
T. Sheard. Evolving Domain Specific Languages. http://web.cecs.pdx.edu/~sheard/proposals/EvolvDsl.ps, 2004.
[56]
M. Shonle, K. Lieberherr, and A. Shah. XAspects: An Extensible System for Domain Specific Aspect Languages. In OOPSLA, pages 28--37. ACM, 2003.
[57]
G. Steele Jr. Building Interpreters by Composing Monads. In POPL, pages 472--492. ACM, 1994.
[58]
É. Tanter. From Metaobject Protocols to Versatile Kernels for Aspect-Oriented Programming. PhD thesis, Université de Nantes, France, 2004.
[59]
É. Tanter and J. Noyé. A Versatile Kernel for Multi-language AOP. In GPCE, volume 3676 of LNCS, page 173. Springer, 2005.
[60]
N. Ubayashi, H. Masuhara, and T. Tamai. An AOP Implementation Framework for Extending Join Point Models. In Workshop on Reflection, AOP and Meta-Data for Software Evolution (at ECOOP), pages 71--82, 2004.
[61]
The Workflow Management Coalition. http://www.wfmc.org/.

Cited By

View all
  • (2023)Security concerns over IoT routing using emerging technologiesTransactions on Emerging Telecommunications Technologies10.1002/ett.479834:7Online publication date: 11-Jul-2023
  • (2023)Request delay and survivability optimization for software defined‐wide area networking (SD‐WAN) using multi‐agent deep reinforcement learningTransactions on Emerging Telecommunications Technologies10.1002/ett.477634:7Online publication date: 18-Apr-2023
  • (2020)Conceptual Human Emotion Modeling (HEM)Advances in Conceptual Modeling10.1007/978-3-030-65847-2_7(71-81)Online publication date: 22-Dec-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
AOSD '10: Proceedings of the 9th International Conference on Aspect-Oriented Software Development
March 2010
242 pages
ISBN:9781605589589
DOI:10.1145/1739230
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • AOSA: Aspect-Oriented Software Association

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 March 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. aspect-oriented programming
  2. embedded domain-specific languages
  3. meta-object protocols

Qualifiers

  • Research-article

Conference

AOSD '10
Sponsor:
  • AOSA

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)0
Reflects downloads up to 27 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Security concerns over IoT routing using emerging technologiesTransactions on Emerging Telecommunications Technologies10.1002/ett.479834:7Online publication date: 11-Jul-2023
  • (2023)Request delay and survivability optimization for software defined‐wide area networking (SD‐WAN) using multi‐agent deep reinforcement learningTransactions on Emerging Telecommunications Technologies10.1002/ett.477634:7Online publication date: 18-Apr-2023
  • (2020)Conceptual Human Emotion Modeling (HEM)Advances in Conceptual Modeling10.1007/978-3-030-65847-2_7(71-81)Online publication date: 22-Dec-2020
  • (2019)Managing Security Policies within Cloud Environments Using Aspect-Oriented State Machines2019 International Conference on Advanced Communication Technologies and Networking (CommNet)10.1109/COMMNET.2019.8742348(1-10)Online publication date: Apr-2019
  • (2015)A Taxonomy of Domain-Specific Aspect LanguagesACM Computing Surveys10.1145/268502847:3(1-44)Online publication date: 17-Feb-2015
  • (2015)Mashup of metalanguages and its implementation in the Kermeta language workbenchSoftware and Systems Modeling (SoSyM)10.1007/s10270-013-0354-414:2(905-920)Online publication date: 1-May-2015
  • (2014)Globalized Domain Specific Language EngineeringRevised Papers of the International Dagstuhl Seminar on Globalizing Domain-Specific Languages - Volume 940010.1007/978-3-319-26172-0_4(43-69)Online publication date: 5-Oct-2014
  • (2014)Implicit BPM: A Business Process Platform for Transparent Workflow WeavingBusiness Process Management10.1007/978-3-319-10172-9_11(168-183)Online publication date: 2014
  • (2013)Polymorphic identifiersACM SIGPLAN Notices10.1145/2578856.250816949:2(61-72)Online publication date: 28-Oct-2013
  • (2013)Polymorphic identifiersProceedings of the 9th symposium on Dynamic languages10.1145/2508168.2508169(61-72)Online publication date: 28-Oct-2013
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media