ABSTRACT
Like any software, domain-specific languages (DSLs) are subject to regularly evolve. One reason to evolve a DSL is when the external libraries it (or its code generator) depends on evolve as well. In current practice, every time a change or addition occurs in the external library, the language engineer has to manually adapt and rebuild the DSL accordingly. In this paper, we propose an approach to evolve DSLs automatically when changes occur in the external libraries they depend on. This provides a seamless evolution to the domain user by reducing the inconsistencies that may arise between the metamodel of the DSL and the generated artifacts. We evaluate the feasibility of our approach on a case study of generating modeling editors where the input/output interactions with the editor are performed through Arduino devices. We show how the DSL can evolve automatically when new Arduino devices and their APIs are available.
- [n. d.]. https://curl.haxx.se/. Last access: 22-09-2020.Google Scholar
- [n. d.]. https://httpie.org/. Last access: 22-09-2020.Google Scholar
- [n. d.]. https://www.hurl.it/. Last access: 22-09-2020.Google Scholar
- [n. d.]. https://arduinomodules.info/. Last access: 22-07-2020.Google Scholar
- [n. d.]. https://www.arduino.cc/reference/en/language/functions/usb/mouse/. Last access: 22-07-2020.Google Scholar
- [n. d.]. http://duinoedu.com/dl/lib/grove/EDU_RFID125_Grove/. Last access: 22-07-2020.Google Scholar
- [n. d.]. https://github.com/Seeed-Studio/RFID_Library. Last access: 22-07-2020.Google Scholar
- A Abouzahra, A Sabraoui, and K Afdel. 2020. Model composition in Model Driven Engineering: A systematic literature review. Information and Software Technology 125 (2020).Google Scholar
- E Batot, W Kessentini, H Sahraoui, and M Famelis. 2017. Heuristic-Based Recommendation for Metamodel-OCL Coevolution. In MODELS. IEEE, 210--220.Google Scholar
- L Bettini. 2016. Implementing Domain Specific Languages with Xtext and Xtend - Second Edition (2nd ed.). Packt Publishing.Google Scholar
- B E Cossette and R J Walker. 2012. Seeking the ground truth: a retroactive study on the evolution and migration of software libraries. In Foundations of Software Engineering. 1--11.Google Scholar
- C Daly. 2004. Emfatic language reference. IBM alphaWorks (2004).Google Scholar
- A Demuth, R E Lopez-Herrejon, and A Egyed. 2013. Supporting the Co-evolution of Metamodels and Constraints through Incremental Constraint Management. In MODELS, Vol. 8107. Springer, 287--303.Google Scholar
- D Di Ruscio, L Iovino, and A Pierantonio. 2013. Managing the Coupled Evolution of Metamodels and Textual Concrete Syntax Specifications. In SEAA. IEEE, 114--121.Google Scholar
- D Di Ruscio, R Lämmel, and A Pierantonio. 2010. Automated Co-evolution of GMF Editor Models. In SLE. Springer, 143--162.Google Scholar
- D Dig and R Johnson. 2006. How do APIs evolve? A story of refactoring. Journal of software maintenance and evolution: Research and Practice 18, 2 (2006), 83--107.Google ScholarCross Ref
- J Dingel, Z Diskin, and A Zito. 2008. Understanding and improving UML package merge. Software and Systems Modeling 7 (2008), 443--467.Google ScholarCross Ref
- M Fokaefs, R Mikhaiel, N Tsantalis, E Stroulia, and A Lau. 2011. An Empirical Study on Web Service Evolution. In International Conference on Web Services. IEEE, 49--56.Google Scholar
- D Harel and B Rumpe. 2004. Meaningful Modeling: What's the Semantics of "Semantics"? IEEE Computer 37, 10 (2004), 64--72.Google ScholarDigital Library
- R Hebig, D E Khelladi, and R Bendraou. 2016. Approaches to Co-Evolution of Metamodels and Models: A Survey. IEEE Transactions on Software Engineering 43, 5 (2016), 396--414.Google ScholarDigital Library
- R Koçi, X Franch, P Jovanovic, and A Abelló. 2019. Classification of Changes in API Evolution. In Enterprise Distributed Object Computing Conference. IEEE, 243--249.Google Scholar
- D S Kolovos et al. 2017. Eugenia: towards disciplined and automated development of GMF-based graphical model editors. Software and Systems Modeling 16 (2017), 229--255.Google ScholarDigital Library
- J Li, Y Xiong, X Liu, and L Zhang. 2013. How Does Web Service API Evolution Affect Clients?. In International Conference on Web Services. IEEE, 300--307.Google ScholarDigital Library
- L Luhunu and E Syriani. 2017. Comparison of the expressiveness and performance of template-based code generation tools. In SLE. ACM, 206--216.Google Scholar
- R C Martin. 2000. Design principles and design patterns. Object Mentor 1, 34 (2000), 597.Google Scholar
- Bart Meyers and Hans Vangheluwe. 2011. A Framework for Evolution of Modelling Languages. Science of Computer Programming 76, 12 (2011), 1223--1246.Google ScholarDigital Library
- D Moody. 2009. The "Physics" of Notations: Toward a Scientific Basis for Constructing Visual Notations in Software Engineering. IEEE Transactions on software engineering 35, 6 (2009), 756--779.Google ScholarDigital Library
- R F Paige, N Matragkas, and L M Rose. 2016. Evolving models in Model-Driven Engineering: State-of-the-art and future challenges. Journal of Systems and Software 111 (2016), 272--280.Google ScholarDigital Library
- T Parr and K Fisher. 2011. LL(*): The Foundation of the ANTLR Parser Generator. ACM Sigplan Notices 46, 6 (2011), 425--436.Google ScholarDigital Library
- R Rai. 2013. Socket.IO Real-time Web Application Development. Packt Publishing Ltd.Google Scholar
- Philipp et al. Rohlfshagen. 2018. Pac-Man Conquers Academia: Two Decades of Research Using a Classic Arcade Game. IEEE Transactions on Games 10, 3 (2018), 233--256.Google ScholarCross Ref
- L M Rose, R F Paige, D S Kolovos, and F AC Polack. 2008. The epsilon generation language. In ECMDA-FA (LNCS), Vol. 5095. Springer, 1--16.Google Scholar
- R Smith, T Koeppe, J Maurer, and D Perchik. 2020. Working Draft, Standard for Programming Language C++. ISO/IEC JTC1/SC22/WG21 document N 4861 (2020).Google Scholar
- M et al. Voelter. 2013. DSL Engineering - Designing, Implementing and Using Domain-Specific Languages. dslbook.org.Google Scholar
Recommendations
Languages as libraries
PLDI '11Programming language design benefits from constructs for extending the syntax and semantics of a host language. While C's string-based macros empower programmers to introduce notational shorthands, the parser-level macros of Lisp encourage ...
Languages as libraries
PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and ImplementationProgramming language design benefits from constructs for extending the syntax and semantics of a host language. While C's string-based macros empower programmers to introduce notational shorthands, the parser-level macros of Lisp encourage ...
Macros for domain-specific languages
Macros provide a powerful means of extending languages. They have proven useful in both general-purpose and domain-specific programming contexts. This paper presents an architecture for implementing macro-extensible DSLs on top of macro-extensible host ...
Comments