Skip to main content Accessibility help
×
×
Home

Observable interface behaviour and inheritance

  • ERIKA ÁBRAHÁM (a1), THI MAI THUONG TRAN (a2) and MARTIN STEFFEN (a3)
Abstract

This paper formalizes the observable interface behaviour of open systems for a strongly-typed, concurrent object-oriented language with single-class inheritance. We formally characterize the observable behaviour in terms of interactions at the program-environment interface. The behaviour is given by transitions between contextual judgments, where the absent environment is represented abstractly as assumption context. A particular challenge is the fact that, when the system is considered as open, code from the environment can be inherited to the component and vice versa. This requires to incorporate an abstract version of the heap into the environment assumptions when characterizing the interface behaviour. We prove the soundness of the abstract interface description.

Copyright
References
Hide All
Abadi, M. and Cardelli, L. (1996) A Theory of Objects, Monographs in Computer Science, Springer-Verlag.
Ábrahám, E., de Boer, F. S., Bonsangue, M. M., Grüner, A. and Steffen, M. (2005) Observability, connectivity, and replay in a sequential calculus of classes. In: Bonsangue, M., de Boer, F. S., de Roever, W.-P. and Graf, S. (eds.) Proceedings of the 3rd International Symposium on Formal Methods for Components and Objects (FMCO 2004). Springer-Verlag Lecture Notes in Computer Science 3657 296316 (21 pages). Available at http://www.ifi.uio.no/~msteffen/download/fa-fmco.pdf.
Ábrahám, E., Grüner, A. and Steffen, M. (2006) Abstract interface behavior of object-oriented languages with monitors. In: Gorrieri, R. and Wehrheim, H. (eds.) FMOODS'06. Springer-Verlag Lecture Notes in Computer Science 4037 218232 (15 pages). Available at http://www.springerlink.com/content/3365g26781740807.
Ábrahám, E., Grabe, I., Grüner, A. and Steffen, M. (2007) Behavioral interface description of an object-oriented language with futures and promises. Journal of Logic and Algebraic Programming 78 (7) 491518 (28 pages). Available at http://www.ifi.uio.no/~msteffen/download/09/futures.pdf. (Special issue with selected contributions of NWPT'07. The paper is a reworked version of an earlier UiO Technical Report TR-364.)
Ábrahám, E., Grüner, A. and Steffen, M. (2008) Abstract interface behavior of object-oriented languages with monitors. Theory of Computing Systems 43 (3–4) 322361 (40 pages). Available at http://www.ifi.uio.no/~msteffen/download/07/monitors-tocs.pdf.
Abramsky, S. and McCusker, G. (1996) Linearity, sharing, and state: A fully abstract game semantics for Idealized Algol with active expressions (extended abstract). volume 2. Birkhäuser, two volumes, 1997. (Reprint of the paper which appeared in the Proceedings of the 1996 Workshop on Linear Logic. Electronic Notes in Theoretical Computer Science 3.)
Agha, G. and Hewitt, C. (1987) Concurrent programming using actors. In: Object-Oriented Concurrent Programming, MIT Press 3753.
Ahrendt, W. and Dylla, M. (2012) A system for compositional verification of asynchronous objects. Science of Computer Programming 77 (12) 12891309 ISSN . Available at http://www.sciencedirect.com/science/article/pii/S0167642310001553.
Armstrong, J., Virding, R., Wikström, C. and Williams, M. (1996) Concurrent Programming in Erlang, 2nd edition, Prentice Hall Europe, Hemel Hempstead, Hertfordshire.
Banerjee, A. and Naumann, D. A. (2005) Ownership confinement ensures representation independence for object-oriented programs. Journal of the ACM 52 (6) 894960 ISSN .
Breazu-Tannen, V., Gunter, C. A. and Ščedrov, A. (1990) Computing with coercions. In: Proceedings of the ACM Conference on Lisp and Functional Programming 44–61.
Cook, W. (1989) A Denotational Model of Inheritance, Ph.D. thesis, Brown University.
Curien, P.-L. (2007) Definability and full abstraction. Electronic Notes in Theoretical Computer Science 172 301310 ISSN . Available at http://dx.doi.org/10.1016/j.entcs.2007.02.011.
de Boer, F. S., Clarke, D. and Johnsen, F. B. (2007) A complete guide to the future. In: de Nicola, R. (eds.) Proceedings of Programming Languages and Systems, 16th European Symposium on Programming, Vienna, Austria. Springer-Verlag Lecture Notes in Computer Science 4421 316330.
Din, C. C., Dovland, J. and Owe, O. (2012) Compositional reasoning about shared futures. In: Proceedings of SEFM'12. Springer-Verlag Lecture Notes in Computer Science 7504 94108. ISBN 978-3-642-33825-0.
Donahue, J. (1979) On the semantics of data type. SIAM J. Computing 8 546560.
Gordon, A. D., Hankin, P. D. and Lassen, S. B. (1997) Compilation and equivalence of imperative objects. In: Ramesh, S. and Sivakumar, G. (eds.) Proceedings of FSTTCS'97. Springer-Verlag Lecture Notes in Computer Science 1346 7487. (Full version available as Technical Report 429, University of Cambridge Computer Laboratory, June 1997.)
Gordon, A. D. and Rees, G. D. (1996) Bisimilarity for a first-order calculus of objects with subtyping. In: Proceedings of POPL '96, ACM 386–395. (Full version available as Technical Report 386, Computer Laboratory, University of Cambridge.)
Haynes, C. T. (1984) A theory of data type representation independence. In: Kahn, K., MacQueen, D. and Plotkin, G. D. (eds.) Semantics of Data Types. Springer-Verlag Lecture Notes in Computer Science 173 157176.
Jeffrey, A. and Rathke, J. (2002) A fully abstract may testing semantics for concurrent objects. In: Proceedings of LICS '02, IEEE, Computer Society Press 101112.
Jeffrey, A. and Rathke, J. (2005) Java Jr.: A fully abstract trace semantics for a core Java language. In: Sagiv, M.(eds.) Proceedings of ESOP 2005. Springer-Verlag Lecture Notes in Computer Science 3444 423438.
Kamin, K. (1988) Inheritance in Smalltalk-80: A denotational definition. In: ACM Conference on Programming Language Design and Implementation (PLDI) (Atlanta, GA), ACM in SIGPLAN Notices 23 (7).
Koutavas, V. and Wand, M. (2007) Reasoning about class behavior. In: Informal Workshop Record of FOOL 2007.
Kurnia, I. W. and Poetzsch-Heffter, A. (2013) Verification of open concurrent object systems. In: de Boer, F. S., Bonsangue, M. M., Giachino, E. and Hähnle, R. (eds.) Proceedings of the 11th International Symposium on Formal Methods for Components and Objects, FMCO 2012. Springer-Verlag Lecture Notes in Computer Science 7866 83118.
Mikhajlov, L. and Sekerinski, E. (1998) A study of the fragile base class problem. In: Proceedings of the 12th European Conference on Object-Oriented Programming (ECOOP'98), Brussels, Belgium. Springer-Verlag Lecture Notes in Computer Science 1445 355–354.
Mitchell, J. C. (1986) Representation independence and data abstraction. In: 13th Annual Symposium on Principles of Programming Languages (POPL) (St. Peterburg Beach, FL), ACM 263–276.
Odersky, M., Spoon, L. and Venners, B. (2011) Programming in Scala, Artima Series, Artima Press. ISBN 9780981531649. Available at http://books.google.no/books?id=ZNo8cAAACAAJ.
Poetzsch-Heffter, A. and Schäfer, J. (2007) A representation-independent behavioral semantics for object-oriented components. In: Bonsangue, M. M. and Johnsen, E. B. (eds.) FMOODS'07. Springer-Verlag Lecture Notes in Computer Science 4468 157173.
Reddy, U. S. (1988) Objects as closures: Abstract semantics of object-oriented languages. In: Symposium on lisp and Functional Programming (Snowbird, UT), ACM 289–297.
Reynolds, J. (1974) Towards a theory of type structure. In: Robinet, B. (ed.) Colloque sur la Programmation (Paris, France). Springer-Verlag Lecture Notes in Computer Science 19 408425.
Reynolds, J. (1983) Types, abstraction, and parametric polymorphism. In: Mason, R. E. A. (ed.) Information Processing 83, IFIP, North-Holland 513523.
Ruby, C. and Leavens, G. T. (2000) Safely creating correct subclasses without seeing superclass code. In: Object Oriented Programming: Systems, Languages, and Applications (OOPSLA)'00, ACM 208–228. (In SIGPLAN Notices.)
Snyder, A. (1986) Encapsulation and inheritance in object-oriented programming languages. In: Object Oriented Programming: Systems, Languages, and Applications (OOPSLA)'86 (Portland, Oregon), ACM 3845. (In SIGPLAN Notices 21 (11).)
Stata, R. and Guttag, J. V. (1995) Modular reasoning in the presence of subclassing. In: Object Oriented Programming: Systems, Languages, and Applications (OOPSLA)'95, ACM 200214. (In SIGPLAN Notices 30 (10).)
Viswanathan, R. (1998) Full abstraction for first-order objects with recursive types and subtyping. In: Proceedings of LICS '98. IEEE, Computer Society Press.
Welsch, Y. and Poetzsch-Heffter, A. (2014) A fully abstract trace-based semantics for reasoning about backward compatibility of class libraries. Science of Computer Programming, (Selected papers from the Brazilian Symposium on Formal Methods (SBMF 2011)) 92, Part B, 129161 ISSN . Available at http://www.sciencedirect.com/science/article/pii/S0167642313002529. (Available online 25 October 2013.)
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Mathematical Structures in Computer Science
  • ISSN: 0960-1295
  • EISSN: 1469-8072
  • URL: /core/journals/mathematical-structures-in-computer-science
Please enter your name
Please enter a valid email address
Who would you like to send this to? *
×

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed