skip to main content
10.1145/3623476.3623530acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Seamless Code Generator Synchronization in the Composition of Heterogeneous Modeling Languages

Authors Info & Claims
Published:23 October 2023Publication History

ABSTRACT

In Software Language Engineering, the composition of heterogeneous languages has become an increasingly relevant research area in recent years. Despite considerable advances in different composition techniques, they mainly focus on composing concrete and abstract syntax, while a thorough yet general concept for synchronizing code generators and their produced artifacts is still missing. Current solutions are either highly generic, typically increasing the complexity beyond their actual value, or strictly limited to specific applications. In this paper, we present a concept for lightweight generator composition, using the symbol tables of heterogeneous modeling languages to exchange generator-specific accessor and mutator information. The information is attached to the symbols of model elements via templates allowing code generators to communicate access routines at the code level without a further contract. Providing suitable synchronization techniques for code generation is essential to enable language composition in all aspects.

References

  1. Michał Antkiewicz and Krzysztof Czarnecki. 2006. Framework-Specific Modeling Languages with Round-Trip Engineering. In International Conference on Model Driven Engineering Languages and Systems. 692–706. https://doi.org/10.1007/11880240_48 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Hans Blom, Henrik Lönn, Frank Hagl, Yiannis Papadopoulos, Mark-Oliver Reiser, Carl-Johan Sjöstedt, De-Jiu Chen, Fulvio Tagliabo, Sandra Torchiaro, and Sara Tucci. 2013. EAST-ADL: An architecture description language for Automotive Software-Intensive Systems. Embedded Computing Systems: Applications, Optimization, and Advanced Design: Applications, Optimization, and Advanced Design, 456. https://doi.org/10.4018/978-1-4666-3922-5.ch023 Google ScholarGoogle ScholarCross RefCross Ref
  3. Hugo Bruneliere, Jordi Cabot, Grégoire Dupé, and Frédéric Madiot. 2014. MoDisco: a Model Driven Reverse Engineering Framework. Information and Software Technology, 56, 8 (2014), 1012–1032. https://doi.org/10.1016/j.infsof.2014.04.007 Google ScholarGoogle ScholarCross RefCross Ref
  4. Barrett Bryant, Jean-Marc Jézéquel, Ralf Lämmel, Marjan Mernik, Martin Schindler, Friedrich Steinmann, Juha-Pekka Tolvanen, Antonio Vallecillo, and Markus Völter. 2015. Globalized Domain Specific Language Engineering. Springer, 43–69. https://doi.org/10.1007/978-3-319-26172-0_4 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Arvid Butting, Robert Eikermann, Katrin Hölldobler, Nico Jansen, Bernhard Rumpe, and Andreas Wortmann. 2020. A Library of Literals, Expressions, Types, and Statements for Compositional Language Design. Journal of Object Technology, 19, 3 (2020), October, 3:1–16. https://doi.org/10.5381/jot.2020.19.3.a4 Google ScholarGoogle ScholarCross RefCross Ref
  6. Arvid Butting, Judith Michael, and Bernhard Rumpe. 2022. Language Composition via Kind-Typed Symbol Tables. Journal of Object Technology, 21 (2022), October, 4:1–13. Google ScholarGoogle ScholarCross RefCross Ref
  7. Arvid Butting, Jerome Pfeiffer, Bernhard Rumpe, and Andreas Wortmann. 2020. A Compositional Framework for Systematic Modeling Language Reuse. In Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems. ACM, 35–46. https://doi.org/10.1145/3365438.3410934 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. María Victoria Cengarle, Hans Grönniger, and Bernhard Rumpe. 2009. Variability within Modeling Language Definitions. In Conference on Model Driven Engineering Languages and Systems (MODELS’09) (LNCS 5795). Springer, 670–684. https://doi.org/10.1007/978-3-642-04425-0_54 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Florian Drux, Nico Jansen, and Bernhard Rumpe. 2022. A Catalog of Design Patterns for Compositional Language Engineering. Journal of Object Technology, 21, 4 (2022), October, 4:1–13. https://doi.org/10.5381/jot.2022.21.4.a4 Google ScholarGoogle ScholarCross RefCross Ref
  10. Sebastian Erdweg, Tijs van der Storm, Markus Völter, Meinte Boersma, Remi Bosman, William R Cook, Albert Gerritsen, Angelo Hulshout, Steven Kelly, and Alex Loh. 2013. The State of the Art in Language Workbenches. In International Conference on Software Language Engineering. 197–217. Google ScholarGoogle Scholar
  11. J-M Favre. 2005. Languages evolve too! Changing the Software Time Scale. In Eighth International Workshop on Principles of Software Evolution (IWPSE’05). 33–42. https://doi.org/10.1109/IWPSE.2005.22 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Robert France and Bernhard Rumpe. 2007. Model-driven Development of Complex Software: A Research Roadmap. Future of Software Engineering (FOSE ’07), May, 37–54. Google ScholarGoogle Scholar
  13. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, and Design Patterns. 1995. Elements of Reusable Object-Oriented Software. Design Patterns. massachusetts: Addison-Wesley Publishing Company. Google ScholarGoogle Scholar
  14. I Garcıa, M Polo, and M Piattini. 2004. Metamodels and architecture of an automatic code generator. In 2nd Nordic Workshop on the Unified Modeling Language, NWUML. Google ScholarGoogle Scholar
  15. David Harel and Bernhard Rumpe. 2004. Meaningful Modeling: What’s the Semantics of ”Semantics”? IEEE Computer Journal, 37, 10 (2004), October, 64–72. issn:0018-9162 https://doi.org/10.1109/MC.2004.172 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Katrin Hölldobler, Oliver Kautz, and Bernhard Rumpe. 2021. MontiCore Language Workbench and Library Handbook: Edition 2021. Shaker Verlag, Aachen. isbn:978-3-8440-8010-0 Google ScholarGoogle Scholar
  17. Katrin Hölldobler, Bernhard Rumpe, and Andreas Wortmann. 2018. Software Language Engineering in the Large: Towards Composing and Deriving Languages. Journal Computer Languages, Systems & Structures, 54 (2018), 386–405. https://doi.org/10.1016/j.cl.2018.08.002 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Sven Jörges, Tiziana Margaria, and Bernhard Steffen. 2008. Genesys: service-oriented construction of property conform code generators. Innovations in Systems and Software Engineering, 4, 4 (2008), 361–384. https://doi.org/10.1007/s11334-008-0071-2 Google ScholarGoogle ScholarCross RefCross Ref
  19. Anneke Kleppe. 2008. Software Language Engineering: Creating Domain-Specific Languages Using Metamodels. Pearson Education. Google ScholarGoogle Scholar
  20. Thomas Kuhn, Soeren Kemmann, Mario Trapp, and Christian Schäfer. 2009. Multi-Language Development of Embedded Systems. In 9th OOPSLA DSM Workshop, Orlando, USA. Google ScholarGoogle Scholar
  21. Pedram Mir Seyed Nazari, Alexander Roth, and Bernhard Rumpe. 2015. Management of Guided and Unguided Code Generator Customizations by Using a Symbol Table. In Domain-Specific Modeling Workshop (DSM’15). ACM, 37–42. https://doi.org/10.1145/2846696.2846702 Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Pedram Mir Seyed Nazari, Alexander Roth, and Bernhard Rumpe. 2016. An Extended Symbol Table Infrastructure to Manage the Composition of Output-Specific Generator Information. In Modellierung 2016 Conference (LNI, Vol. 254). Bonner Köllen Verlag, 133–140. Google ScholarGoogle Scholar
  23. Jérôme Pfeiffer and Andreas Wortmann. 2021. Towards the Black-Box Aggregation of Language Components. In 2021 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C). 576–585. https://doi.org/10.1109/MODELS-C53483.2021.00088 Google ScholarGoogle ScholarCross RefCross Ref
  24. Jan Oliver Ringert, Alexander Roth, Bernhard Rumpe, and Andreas Wortmann. 2014. Code Generator Composition for Model-Driven Engineering of Robotics Component & Connector Systems. In Model-Driven Robot Software Engineering Workshop (MORSE’14) (CEUR Workshop Proceedings, Vol. 1319). 66 – 77. Google ScholarGoogle Scholar
  25. Jan Oliver Ringert, Alexander Roth, Bernhard Rumpe, and Andreas Wortmann. 2015. Language and Code Generator Composition for Model-Driven Engineering of Robotics Component & Connector Systems. Journal of Software Engineering for Robotics (JOSER), 6, 1 (2015), 33–57. Google ScholarGoogle Scholar
  26. Bran Selic. 2003. The Pragmatics of Model-Driven Development. IEEE software, 20, 5 (2003), 19–25. https://doi.org/10.1109/MS.2003.1231146 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Bernhard Steffen, Tiziana Margaria, Ralf Nagel, Sven Jörges, and Christian Kubczak. 2007. Model-Driven Development with the jABC. In Hardware and Software, Verification and Testing: Second International Haifa Verification Conference, HVC 2006, Haifa, Israel, October 23-26, 2006. Revised Selected Papers 2. 92–108. Google ScholarGoogle Scholar
  28. Markus Voelter and Vaclav Pech. 2012. Language Modularity with the MPS Language Workbench. In 2012 34th International Conference on Software Engineering (ICSE). 1449–1450. Google ScholarGoogle Scholar
  29. Markus Völter, Thomas Stahl, Jorn Bettin, Arno Haase, and Simon Helsen. 2013. Model-Driven Software Development: Technology, Engineering, Management. John Wiley & Sons. Google ScholarGoogle Scholar
  30. Dennis Leroy Wigand, Arne Nordmann, Niels Dehio, Michael Mistry, and Sebastian Wrede. 2017. Domain-Specific Language Modularization Scheme Applied to a Multi-Arm Robotics Use-Case. Journal of Software Engineering for Robotics. Google ScholarGoogle Scholar

Index Terms

  1. Seamless Code Generator Synchronization in the Composition of Heterogeneous Modeling Languages

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      SLE 2023: Proceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering
      October 2023
      231 pages
      ISBN:9798400703966
      DOI:10.1145/3623476

      Copyright © 2023 ACM

      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 the author(s) 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].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 23 October 2023

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Upcoming Conference

    • Article Metrics

      • Downloads (Last 12 months)39
      • Downloads (Last 6 weeks)4

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader