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

Published: 23 October 2023 Publication 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
[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
[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
[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
[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
[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.
[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
[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
[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
[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.
[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
[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.
[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.
[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.
[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
[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
[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
[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
[19]
Anneke Kleppe. 2008. Software Language Engineering: Creating Domain-Specific Languages Using Metamodels. Pearson Education.
[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.
[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
[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.
[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
[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.
[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.
[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
[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.
[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.
[29]
Markus Völter, Thomas Stahl, Jorn Bettin, Arno Haase, and Simon Helsen. 2013. Model-Driven Software Development: Technology, Engineering, Management. John Wiley & Sons.
[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.

Cited By

View all
  • (2024)Applying a Self-Extension Mechanism to DSLs for Establishing Model LibrariesProceedings of the 23rd ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3689484.3690732(29-43)Online publication date: 21-Oct-2024

Index Terms

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

    Recommendations

    Comments

    Information & Contributors

    Information

    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
    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].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 23 October 2023

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. CRUD
    2. Code Generation
    3. Generator Composition
    4. Software Language Composition

    Qualifiers

    • Research-article

    Funding Sources

    • Deutsche Forschungsgemeinschaft (DFG, German Research Foundation)

    Conference

    SLE '23
    Sponsor:

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)23
    • Downloads (Last 6 weeks)6
    Reflects downloads up to 08 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Applying a Self-Extension Mechanism to DSLs for Establishing Model LibrariesProceedings of the 23rd ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3689484.3690732(29-43)Online publication date: 21-Oct-2024

    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