Abstract
OPUS is an elementary calculus that models object-orientation. It expresses in a direct way the crucial features of object-oriented programming such as objects, encapsulation, message passing and incremental modification. This is illustrated by numerous examples. Thanks to the way objects are constructed in this calculus, we can deal with self-reference, recursion and even mutual recursion in a straightforward way. We also illustrate that it is relatively easy to model different kinds of inheritance mechanisms. Finally, we argue to which extent our calculus can be used for modeling and investigating object-oriented concepts.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
M. Abadi, L. Cardelli: A Theory of Primitive Objects. Unpublished, 1994
G. Bracha, W. Cook: Mixin-based Inheritance. OOPSLA/ECOOP '90 Conference Proceedings, pp. 303–311, ACM Press, 1990
G. Castagna, G. Ghelli, G. Longo: A Calculus for Overloaded Functions with Subtyping. Extended Abstract, ACM, 1992
L. Cardelli, J. Mitchell: Operations on Records. Proceedings on Mathematical Foundations of Programming Semantics, LNCS 442, 1989
L. Cardelli: A semantics of multiple inheritance. Information and Computation 76, pp. 138–164, 1988
P. Canning, W. Cook, W. Hill, W. Olthoff: Interfaces for Strongly-Typed Object-Oriented Programming. OOPSLA '89 Conference Proceedings, pp. 457–467, ACM Press, 1989
L. Dami: Extensible Lambda Expressions: A Lambda Calculus with Names, Combinations and Alternations. Technical Report, University of Geneva, 1993
L. Dami: Named Parameters: A Foundation for Subtyping. Extended Abstract, Submitted to LICS, University of Geneva, 1994
L. Dami: Software Composition: Towards an Integration of Functional and Object-Oriented Approaches. Ph.D.-Thesis, University of Geneva, 1994
M. Hofmann, B. Pierce: An abstract view of objects and subtyping. Technical Report ECS-LFCS-92-226, University of Edinburgh, 1992
R. Milner: The Poliadic π-calculus: A tutorial. Technical Report ECS-LFCS-91-180, University of Edinburgh, 1991
O. Nierstrasz: A survey of object-oriented concepts. Object-oriented concepts, databases and applications, pp. 3–21, ACM Press and Addison-Wesley, 1989
O. Nierstrasz: Towards an Object Calculus. ECOOP Workshop on Object-Based Concurrent Computing, LNCS 612, 1992
B. Pierce: A Model of Delegation Based on Existential Types. Working Draft, Inria-Roquencourt, 1993
B. Pierce, D. Turner: Object-oriented Programming without Recursive Types. Technical Report ECS-LFCS-92-225, University of Edinburgh, 1992
P. Steyaert, W. Codenie, T. D'Hondt, K. De Hondt, C. Lucas, M. Van Limbergen: Nested Mixin-Methods in Agora. Technical Report vub-prog-tr-93-01, Vrije Universiteit Brussel, ECOOP' 93 Conference Proceedings, 1993
A. Snyder: Inheritance and the Development of Encapsulated Software Components. Research Directions in Object-Oriented Programming, MIT Press, 1987
P. Steyaert: Towards a Calculus for Objects and its Reflective Variant. Extended Abstract (unpublished), presented at ECOOP '92 workshop on reflection and metalevel architectures, 1992
P. Steyaert: Open Design of Object-Oriented Languages, A Foundation for Specialisable Reflective Language Frameworks. Ph.D.-Thesis, Vrije Universiteit Brussel, 1994
P. Wegner, S. Zdonik: Inheritance as an Incremental Modification Mechanism, or What Like is and Isn't Like. ECOOP '88 Conference Proceedings, pp. 55–77, Springer-Verlag, 1988
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mens, T., Mens, K., Steyaert, P. (1994). OPUS: a formal approach to object-orientation. In: Naftalin, M., Denvir, T., Bertran, M. (eds) FME '94: Industrial Benefit of Formal Methods. FME 1994. Lecture Notes in Computer Science, vol 873. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58555-9_103
Download citation
DOI: https://doi.org/10.1007/3-540-58555-9_103
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58555-8
Online ISBN: 978-3-540-49031-9
eBook Packages: Springer Book Archive