ABSTRACT
A mogram designates a software language implemented in either a programming or a modelling language. Object-Oriented mograms share many common language features, but also have specificities related to inheritance, collection values, opposite and contained references, or overloading. We propose a mathematical framework that captures the semantics of such mograms with a precise characterisation of the variation points. We implemented a prototype tool that enables formal analysis in a uniform way.
- M. Abadi and L. Cardelli. 1998. A Theory of Objects. Springer. Google ScholarDigital Library
- A.V. Aho, R. Sethi, and J.D. Ullman. 1986. Compilers:Principles, Techniques, and Tools. Addison-Wesley. Google ScholarDigital Library
- W. Ahrendt, B. Beckert, R. Bubel, R. Hähnle, P.H. Schmitt, and M. Ulbrich (Eds.). 2016. Deductive Software Verification -- The KeYBook. From Theory to Practice. Springer-Verlag.Google Scholar
- Moussa Amrani. 2013. A Formal Semantics of Kermeta. In Formal and Practical Aspects of Domain-Specific Languages: Recent Developments, Marjan Mernik (Ed.). Igi Global, Chapter 10.Google Scholar
- Moussa Amrani. 2013. Towards The Formal Verification of Model Transformations --- An Application to Kermeta. Ph.D. Dissertation. University of Luxembourg.Google Scholar
- Anneke Kleppe. 2009. Software Language Engineering: Creating Domain-Specific Languages Using Metamodels. Addison-Wesley, Upper Saddle River, NJ. Google ScholarDigital Library
- I. Attali, D. Caromel, and S. Ould Ehmety. 1995. An Operational Semantics for the Eiffel Language. Technical Report. INRIA.Google Scholar
- Luca Cardelli. 1988. A Semantics of Multiple Inheritance. Information and Computation 76, 2--3 (1988), 138--164. Google ScholarDigital Library
- Manuel Clavel, Francisco Duran, Steven Eker, Patrick Lincoln, Narciso Marti Oliet, Jose Meseguer, and Carolyn Talcott. 2007. All About Maude. A High-Performance Logical Framework. Lecture Notes in Computer Science (Lncs), Vol. 4350. Springer. Google ScholarDigital Library
- M. Dwyer, J. Hatcliff, M. Hoosier, and Robby. 2005. Building Your Own Software Model-Checker Using The Bogor Extensible Model-Checking Framework. In Computer-Aided Verification. Google ScholarDigital Library
- D. Kolovos, L. Rose, A. Garcia-Dominguez, and R. Paige. 2017. The Epsilon Book.Google Scholar
- Florent Latombe, Xavier Crégut, Benoît Combemale, Julien Deantoni, and Marc Pantel. 2015. Weaving Concurrency in eXecutable Domain-Specific Modeling Languages. In Conference on Software Language Engineering (SLE). Google ScholarDigital Library
- J. Le Noir, S. Madelénat, C. Labreuche, O. Constant, G. Gailliard, M. Acher, and O. Barais. 2016. A Decision-Making Process for Exploring Architectural Variants in Systems Engineering. In Software Product Lines Conference. Google ScholarDigital Library
- M. Nordio, C. Calcagno, P. Müller, and B. Meyer. 2009. A Sound and Complete Program Logic for Eiffel. In Technology of Object-Oriented Languages and Systems.Google Scholar
- Object Management Group. 2005. Action Language for Foundational UML Alf -- Concrete Syntax for an Uml Action Language (ptc/2010-10-05). Technical Report. Object Management Group.Google Scholar
- Object Management Group. 2006. Meta-Object Facility 2.0. Technical Report.Google Scholar
- Gilles Perrouin, Gilles Vanwormhoudt, Brice Morin, Philippe Lahire, Olivier Barais, and Jean-Marc Jézéquel. 2012. Weaving Variability into Domain Metamodels. Software & Systems Modeling 11, 3 (2012), 361--383. Google ScholarDigital Library
- K. Pohl, G. Böckle, and F van der Linden. 2005. Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag. Google ScholarDigital Library
- R. St'ark, J. Schmid, and E. Börger. 2001. Java and the Java Virtual Machine --- Definition, Verification, Validation. Springer-Verlag. Google ScholarDigital Library
- G. Winskel. 1993. The Formal Semantics of Programming Languages. MIT Press. Google ScholarDigital Library
Index Terms
- Formal Analysis of Object-Oriented Mograms
Recommendations
What Is Object-Oriented Programming?
The meaning of the term 'object oriented' is examined in the context of the general-purpose programming language C++. This choice is made partly to introduce C++ and partly because C++ is one of the few languages that supports data abstraction, object-...
Comments