Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3486608.3486912acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

SEALS: a framework for building self-adaptive virtual machines

Published: 22 November 2021 Publication History

Abstract

Over recent years, self-adaptation has become a major concern for software systems that evolve in changing environments. While expert developers may choose a manual implementation when self-adaptation is the primary concern, self-adaptation should be abstracted for non-expert developers or when it is a secondary concern. We present SEALS, a framework for building self-adaptive virtual machines for domain-specific languages. This framework provides first-class entities for the language engineer to promote domain-specific feedback loops in the definition of the DSL operational semantics. In particular, the framework supports the definition of (i) the abstract syntax and the semantics of the language as well as the correctness envelope defining the acceptable semantics for a domain concept, (ii) the feedback loop and associated trade-off reasoning, and (iii) the adaptations and the predictive model of their impact on the trade-off. We use this framework to build three languages with self-adaptive virtual machines and discuss the relevance of the abstractions, effectiveness of correctness envelopes, and compare their code size and performance results to their manually implemented counterparts. We show that the framework provides suitable abstractions for the implementation of self-adaptive operational semantics while introducing little performance overhead compared to a manual implementation.

Supplementary Material

Auxiliary Presentation Video (splashws21slemain-p40-p-video.mp4)
This is a video presentation of the paper "SEALS: A Framework for Building Self-Adaptive Virtual Machines" presented at SLE 2021

References

[1]
Anwar Al-Mofleh, Soib Taib, Wael Salah, and Mokhzaini Azizan. 2008. Importance of Energy Efficiency: From the Perspective of Electrical Equipments. In Proceedings of the 2nd International Conference on Science and Technology (ICSTIE).
[2]
Jonathan Aldrich, Craig Chambers, and David Notkin. 2002. ArchJava: connecting software architecture to implementation. In ICSE ’02: Proceedings of the 24th International Conference on Software Engineering. ACM, New York, NY, USA. 187–197. isbn:1-58113-472-X https://doi.org/10.1145/581339.581365
[3]
Anders SG Andrae and Tomas Edler. 2015. On global electricity usage of communication technology: trends to 2030. Challenges, 6, 1 (2015), 117–157. https://doi.org/10.3390/challe6010117
[4]
Sven Apel, Hendrik Speidel, Philipp Wendler, Alexander von Rhein, and Dirk Beyer. 2011. Detection of Feature Interactions Using Feature-Aware Verification. In Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE ’11). IEEE Computer Society, USA. 372–375. isbn:9781457716386 https://doi.org/10.1109/ASE.2011.6100075
[5]
Joe Armstrong. 2010. erlang. Commun. ACM, 53, 9 (2010), 68–75. https://doi.org/10.1145/1810891.1810910
[6]
Nelly Bencomo, Robert B France, Betty H C Cheng, and Uwe Aß mann. 2014. [email protected]: foundations, applications, and roadmaps. 8378, Springer. https://doi.org/10.1007/978-3-319-08915-7
[7]
Lorenzo Bettini. 2016. Implementing domain-specific languages with Xtext and Xtend. Packt Publishing Ltd.
[8]
Betty H. C. Cheng, Rogério de Lemos, Holger Giese, Paola Inverardi, Jeff Magee, Jesper Andersson, Basil Becker, Nelly Bencomo, Yuriy Brun, Bojan Cukic, Giovanna Di Marzo Serugendo, Schahram Dustdar, Anthony Finkelstein, Cristina Gacek, Kurt Geihs, Vincenzo Grassi, Gabor Karsai, Holger M. Kienle, Jeff Kramer, Marin Litoiu, Sam Malek, Raffaela Mirandola, Hausi A. Müller, Sooyong Park, Mary Shaw, Matthias Tichy, Massimo Tivoli, Danny Weyns, and Jon Whittle. 2009. Software Engineering for Self-Adaptive Systems: A Research Roadmap. Springer Berlin Heidelberg, Berlin, Heidelberg. 1–26. isbn:978-3-642-02161-9 https://doi.org/10.1007/978-3-642-02161-9_1
[9]
B. Combemale, J. A. Kienzle, G. Mussbacher, H. Ali, D. Amyot, M. Bagherzadeh, E. Batot, N. Bencomo, B. Benni, J. Bruel, J. Cabot, B. H. C. Cheng, P. Collet, G. Engels, R. Heinrich, J. Jezequel, A. Koziolek, S. Mosser, R. Reussner, H. Sahraoui, R. Saini, J. Sallou, S. Stinckwich, E. Syriani, and M. Wimmer. 2020. A Hitchhiker’s Guide to Model-Driven Engineering for Data-Centric Systems. IEEE Software, 0–0. https://doi.org/10.1007/978-3-030-66898-3_1
[10]
Brad J. Cox and Andrew Novobilski. 1991. Object-Oriented Programming; An Evolutionary Approach (2nd ed.). Addison-Wesley Longman Publishing Co., Inc., USA. isbn:0201548348
[11]
Krzysztof Czarnecki and Ulrich W. Eisenecker. 2000. Generative Programming: Methods, Tools, and Applications. ACM Press/Addison-Wesley Publishing Co., USA. isbn:0201309777
[12]
Simon Dobson, Spyros Denazis, Antonio Fernández, Dominique Gaïti, Erol Gelenbe, Fabio Massacci, Paddy Nixon, Fabrice Saffre, Nikita Schmidt, and Franco Zambonelli. 2006. A survey of autonomic communications. ACM Transactions on Autonomous and Adaptive Systems (TAAS), 1, 2 (2006), 223–259. https://doi.org/10.1145/1186778.1186782
[13]
Yuxuan Fan, Amal Ahmed Anda, and Daniel Amyot. 2018. An arithmetic semantics for GRL goal models with function generation. In International Conference on System Analysis and Modeling. 144–162. https://doi.org/10.1007/978-3-030-01042-3_9
[14]
Scott D Fleming, Betty HC Cheng, RE Kurt Stirewalt, and Philip K McKinley. 2005. An approach to implementing dynamic adaptation in c++. In Proceedings of the 2005 workshop on Design and evolution of autonomic application software. 1–7. https://doi.org/10.1145/1082983.1083089
[15]
Erich Gamma. 1995. Design patterns: elements of reusable object-oriented software. Pearson Educ. India.
[16]
George Kamiya. 2020. Data Centres and Data Transmission Networks. https://www.iea.org/reports/data-centres-and-data-transmission-networks.
[17]
Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea. 2006. Java Concurrency in Practice. Addison-Wesley Professional. isbn:978-0321349606
[18]
Robert Hirschfeld, Pascal Costanza, and Oscar Marius Nierstrasz. 2008. Context-oriented programming. Journal of Object technology, 7, 3 (2008), 125–151. https://doi.org/10.5381/jot.2008.7.3.a4
[19]
Christian Humer, Christian Wimmer, Christian Wirth, Andreas Wöß, and Thomas Würthinger. 2015. A domain-specific language for building self-optimizing AST interpreters. ACM SIGPLAN Notices, 50, 3 (2015), https://doi.org/10.1145/2775053.2658776
[20]
Jean-Marc Jézéquel, Benoît Combemale, Olivier Barais, Martin Monperrus, and François Fouquet. 2015. Mashup of metalanguages and its implementation in the Kermeta language workbench. Software and System Modeling, 14, 2 (2015), 905–920. https://doi.org/10.1007/s10270-013-0354-4
[21]
Gwendal Jouneaux, Olivier Barais, Benoit Combemale, and Gunter Mussbacher. 2021. Towards Self-Adaptable Languages. In Proceedings of the 2021 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software. https://doi.org/10.1145/3486607.3486753
[22]
Narendra Jussien, Guillaume Rochart, and Xavier Lorca. 2008. Choco: an open source java constraint programming library. In CPAIOR’08 Workshop on Open-Source Software for Integer and Contraint Programming (OSSICP’08). 1–10.
[23]
Stephen Kell. 2008. A Survey of Practical Software Adaptation Techniques. Journal of Universal Computer Science, 14, 13 (2008), 2110–2157. https://doi.org/10.3217/jucs-014-13-2110
[24]
J. O. Kephart and D. M. Chess. 2003. The vision of autonomic computing. Computer, 36, 1 (2003), Jan, 41–50. issn:1558-0814 https://doi.org/10.1109/MC.2003.1160055
[25]
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. 1997. Aspect-oriented programming. In European conference on object-oriented programming. 220–242. https://doi.org/10.1007/BFb0053381
[26]
Jörg Kienzle, Gunter Mussbacher, Benoit Combemale, Lucy Bastin, Nelly Bencomo, Jean-Michel Bruel, Christoph Becker, Stefanie Betz, Ruzanna Chitchyan, Betty H. C. Cheng, Sonja Klingert, Richard F. Paige, Birgit Penzenstadler, Norbert Seyff, Eugene Syriani, and Colin C. Venters. 2020. Toward Model-Driven Sustainability Evaluation. Commun. ACM, 63, 3 (2020), Feb., 80–91. issn:0001-0782 https://doi.org/10.1145/3371906
[27]
Wojtek Kozaczynski and Grady Booch. 1998. Component-based software engineering. IEEE software, 15, 5 (1998), 34. https://doi.org/10.1109/MS.1998.714621
[28]
Christian Krupitzer, Felix Maximilian Roth, Sebastian VanSyckel, Gregor Schiele, and Christian Becker. 2015. A Survey on Engineering Approaches for Self-Adaptive Systems. Pervasive Mob. Comput., 17, PB (2015), Feb., 184–206. issn:1574-1192 https://doi.org/10.1016/j.pmcj.2014.09.009
[29]
Manuel Leduc, Thomas Degueule, Benoit Combemale, Tijs Van Der Storm, and Olivier Barais. 2017. Revisiting visitors for modular extension of executable DSMLs. In 2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MODELS). 112–122. https://doi.org/10.1109/models.2017.23
[30]
Manuel Leduc, Thomas Degueule, Eric Van Wyk, and Benoit Combemale. 2019. The Software Language Extension Problem. Softw. Syst. Model., Dec, 1–5. issn:1619-1374 https://doi.org/10.1007/s10270-019-00772-7
[31]
Jörg Liebig, Sven Apel, Christian Lengauer, Christian Kästner, and Michael Schulze. 2010. An analysis of the variability in forty preprocessor-based software product lines. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1. 105–114. https://doi.org/10.1145/1806799.1806819
[32]
I. Manotas, C. Bird, R. Zhang, D. Shepherd, C. Jaspan, C. Sadowski, L. Pollock, and J. Clause. 2016. An Empirical Study of Practitioners’ Perspectives on Green Software Engineering. In 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE). 237–248. https://doi.org/10.1145/2884781.2884810
[33]
Sparsh Mittal. 2016. A Survey of Techniques for Approximate Computing. ACM Comput. Surv., 48, 4 (2016), Article 62, March, 33 pages. issn:0360-0300 https://doi.org/10.1145/2893356
[34]
Peter D Mosses. 2004. Modular structural operational semantics. The Journal of Logic and Algebraic Programming, 60-61 (2004), 195–228. https://doi.org/10.1016/j.jlap.2004.03.008
[35]
Gunter Mussbacher, Daniel Amyot, Ruth Breu, Jean-Michel Bruel, Betty H. C. Cheng, Philippe Collet, Benoit Combemale, Robert B. France, Rogardt Heldal, James Hill, Jörg Kienzle, Matthias Schöttle, Friedrich Steimann, Dave Stikkolorum, and Jon Whittle. 2014. The Relevance of Model-Driven Engineering Thirty Years from Now. In Model-Driven Engineering Languages and Systems, Juergen Dingel, Wolfram Schulte, Isidro Ramos, Silvia Abrahão, and Emilio Insfran (Eds.). Springer International Publishing, Cham. 183–200. isbn:978-3-319-11653-2 https://doi.org/10.1007/978-3-319-11653-2_12
[36]
Bruno C d S Oliveira and William R Cook. 2012. Extensibility for the Masses. In ECOOP. 2–27. https://doi.org/10.1007/978-3-642-31057-7_2
[37]
Marcelino Rodriguez-Cancio, Benoit Combemale, and Benoit Baudry. 2019. Approximate loop unrolling. In Proceedings of the 16th ACM International Conference on Computing Frontiers. https://doi.org/10.1145/3310273.3323841
[38]
Stuart Russell and Peter Norvig. 2002. Artificial intelligence: a modern approach.
[39]
Dave Steinberg, Frank Budinsky, Ed Merks, and Marcelo Paternostro. 2008. EMF: eclipse modeling framework. Pearson Education.
[40]
International Telecommunication Union. 2018. Recommendation Z.151 (10/18): User Requirements Notation (URN) - Language Definition. Geneva, Switzerland.
[41]
Michael Van De Vanter, Chris Seaton, Michael Haupt, Christian Humer, and Thomas Würthinger. 2018. Fast, flexible, polyglot instrumentation support for debuggers and other tools. arXiv preprint arXiv:1803.10201, https://doi.org/10.22152/programming-journal.org/2018/2/14
[42]
Axel van Lamsweerde. 2009. Requirements Engineering: From System Goals to UML Models to Software Specifications (1 ed.). Wiley. isbn:8126545895
[43]
Wholegrain Digital. 2020. Website Carbon. https://www.websitecarbon.com/.
[44]
Anthony Williams. 2019. C++ Concurrency in Action. Manning Publications. isbn:978-1617294693
[45]
Niklaus Wirth. 1985. Programming in MODULA-2 (3rd Corrected Ed.). Springer-Verlag, Berlin, Heidelberg. isbn:0387150781
[46]
Q. Xu, T. Mytkowicz, and N. S. Kim. 2016. Approximate Computing: A Survey. IEEE Design Test, 33, 1 (2016), Feb, 8–22. issn:2168-2364 https://doi.org/10.1109/MDAT.2015.2505723
[47]
Zhenxiao Yang, Betty HC Cheng, RE Kurt Stirewalt, J Sowell, Seyed Masoud Sadjadi, and Philip K McKinley. 2002. An aspect-oriented approach to dynamic adaptation. In Proceedings of the first workshop on Self-healing systems. 85–92. https://doi.org/10.1145/582128.582144
[48]
Eric Yu. 1995. Modelling Strategic Relationships for Process Reengineering. Ph.D. Dissertation. Department of Computer Science, University of Toronto.
[49]
Ji Zhang, Betty HC Cheng, Zhenxiao Yang, and Philip K McKinley. 2005. Enabling safe dynamic component-based software adaptation. In Architecting Dependable Systems III. Springer, 194–211. https://doi.org/10.1007/11556169_9

Cited By

View all
  • (2022)ML-DEECo: a Machine-Learning-Enabled Framework for Self-organizing Components2022 IEEE International Conference on Autonomic Computing and Self-Organizing Systems Companion (ACSOS-C)10.1109/ACSOSC56246.2022.00033(66-69)Online publication date: Sep-2022

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SLE 2021: Proceedings of the 14th ACM SIGPLAN International Conference on Software Language Engineering
October 2021
176 pages
ISBN:9781450391115
DOI:10.1145/3486608
Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 November 2021

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. framework
  2. self-adaptation
  3. software language

Qualifiers

  • Research-article

Conference

SLE '21
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)14
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2022)ML-DEECo: a Machine-Learning-Enabled Framework for Self-organizing Components2022 IEEE International Conference on Autonomic Computing and Self-Organizing Systems Companion (ACSOS-C)10.1109/ACSOSC56246.2022.00033(66-69)Online publication date: Sep-2022

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media