Formal Analysis of Object-Oriented Mograms
Article No.: 2, Pages 1 - 6
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.
References
[1]
M. Abadi and L. Cardelli. 1998. A Theory of Objects. Springer.
[2]
A.V. Aho, R. Sethi, and J.D. Ullman. 1986. Compilers:Principles, Techniques, and Tools. Addison-Wesley.
[3]
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.
[4]
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.
[5]
Moussa Amrani. 2013. Towards The Formal Verification of Model Transformations --- An Application to Kermeta. Ph.D. Dissertation. University of Luxembourg.
[6]
Anneke Kleppe. 2009. Software Language Engineering: Creating Domain-Specific Languages Using Metamodels. Addison-Wesley, Upper Saddle River, NJ.
[7]
I. Attali, D. Caromel, and S. Ould Ehmety. 1995. An Operational Semantics for the Eiffel Language. Technical Report. INRIA.
[8]
Luca Cardelli. 1988. A Semantics of Multiple Inheritance. Information and Computation 76, 2--3 (1988), 138--164.
[9]
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.
[10]
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.
[11]
D. Kolovos, L. Rose, A. Garcia-Dominguez, and R. Paige. 2017. The Epsilon Book.
[12]
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).
[13]
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.
[14]
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.
[15]
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.
[16]
Object Management Group. 2006. Meta-Object Facility 2.0. Technical Report.
[17]
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.
[18]
K. Pohl, G. Böckle, and F van der Linden. 2005. Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag.
[19]
R. St'ark, J. Schmid, and E. Börger. 2001. Java and the Java Virtual Machine --- Definition, Verification, Validation. Springer-Verlag.
[20]
G. Winskel. 1993. The Formal Semantics of Programming Languages. MIT Press.
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
Information & Contributors
Information
Published In

June 2017
49 pages
ISBN:9781450350983
DOI:10.1145/3103111
Copyright © 2017 ACM.
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].
In-Cooperation
- SIGPLAN: ACM Special Interest Group on Programming Languages
- AITO: Assoc Internationale por les Technologies Objects
Publisher
Association for Computing Machinery
New York, NY, United States
Publication History
Published: 18 June 2017
Check for updates
Author Tags
Qualifiers
- Research-article
- Research
- Refereed limited
Conference
ECOOP '17
Acceptance Rates
FTFJP'17 Paper Acceptance Rate 10 of 12 submissions, 83%;
Overall Acceptance Rate 51 of 75 submissions, 68%
Contributors
Other Metrics
Bibliometrics & Citations
Bibliometrics
Article Metrics
- 0Total Citations
- 64Total Downloads
- Downloads (Last 12 months)3
- Downloads (Last 6 weeks)0
Reflects downloads up to 03 Mar 2025
Other Metrics
Citations
View Options
Login options
Check if you have access through your login credentials or your institution to get full access on this article.
Sign in