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.
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- Anneke Kleppe. 2008. Software Language Engineering: Creating Domain-Specific Languages Using Metamodels. Pearson Education. Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- Markus Völter, Thomas Stahl, Jorn Bettin, Arno Haase, and Simon Helsen. 2013. Model-Driven Software Development: Technology, Engineering, Management. John Wiley & Sons. Google Scholar
- 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 Scholar
Index Terms
- Seamless Code Generator Synchronization in the Composition of Heterogeneous Modeling Languages
Recommendations
Using dynamic programming to generate optimized code in a Graham-Glanville style code generator
SIGPLAN '84: Proceedings of the 1984 SIGPLAN symposium on Compiler constructionWe have performed an investigation of using a dynamic programming to generate optimized code in a Graham-Glanville style code generator We use Earley's algorithm rather than an IR algorithm for parsing in the code generator Not only does the use of ...
Building Code Generators for DSLs Using a Partial Evaluator for the Xtend Language
Part I of the Proceedings of the 6th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation. Technologies for Mastering Change - Volume 8802For several years now, domain-specific languages DSLs are a mainstream tool for establishing model-based development environments in real-world projects. Typical back-end tools for external DSLs are interpreters and code generators.
Partial evaluation ...
Comments