Abstract
We develop a logic for reasoning about object-oriented programs. The logic is for a language with an imperative semantics and aliasing, and accounts for self-reference in objects. It is much like a type system for objects with subtyping, but our specifications go further than types in detailing pre- and postconditions. We intend the logic as an analogue of Hoare logic for object-oriented programs. Our main technical result is a soundness theorem that relates the logic to a standard operational semantics.
Chapter PDF
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
M. Abadi and L. Cardelli. A Theory of Objects. Springer-Verlag, New York, 1996.
K.R. Apt. Ten years of Hoare's logic: A survey-Part I. ACM Transactions on Programming Languages and Systems, 3(4):431–483, October 1981.
E.M. Clarke. Programming language constructs for which it is impossible to obtain good Hoare axiom systems. Journal of the ACM, 26(1):129–147, January 1979.
R.W. Floyd. Assigning meanings to programs. In Proceedings of the Symposium on Applied Math., Vol. 19, pages 19–32. American Mathematical Society, 1967.
R. Harper. A simplified account of polymorphic references. Information Processing Letters, 51:201–206, 1994.
C.A.R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12(10):576–583, October 1969.
C.B. Jones. An object-based design method for concurrent programs. Technical Report UMCS-92-12-1, University of Manchester, 1992.
G.T. Leavens. Verifying Object-Oriented Programs that Use Subtypes. PhD thesis, MIT Laboratory for Computer Science, February 1989. Available as Technical Report MIT/LCS/TR-439.
G.T. Leavens. Modular specification and verification of object-oriented programs. IEEE Software, pages 72–80, July 1991.
K.R.M. Leino. Toward Reliable Modular Programs. PhD thesis, California Institute of Technology, 1995. Available as Technical Report Caltech-CS-TR-95-03.
X. Leroy. Polymorphic typing of an algorithmic language. Technical report, Institut National de Recherche en Informatique et en Automatique, October 1992. English version of the author's PhD thesis.
K. Lano and H. Haughton. Reasoning and refinement in object-oriented specification languages. In Ole Lehrmann Madsen, editor, Proceedings of the 6th European Conference on Object-Oriented Programming (ECOOP), pages 78–97. Springer-Verlag LNCS 615, June 1992.
K. Lano and H. Haughton. Object-Oriented Specification Case Studies. Prentice Hall, New York, 1994.
B.H. Liskov and J.M. Wing. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6):1811–1841, November 1994.
A.R. Meyer and K. Sieber. Towards fully abstract semantics for local variables: Preliminary report. In Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, pages 191–203, January 1988.
S. Owicki and D. Gries. An axiomatic proof technique for parallel programs. Acta Informatica, 6(4):319–340, 1976.
P.W. O'Hearn and R.D. Tennent. Parametricity and local variables. Journal of the ACM, 42(3):658–709, May 1995.
S. Peyton Jones, W. Partain, and A. Santos. Let-floating: moving bindings to give faster programs. In Proceedings of the 1996 ACM SIGPLAN International Conference on Functional Programming (ICFP '96), pages 1–12, May 1996.
A.M. Pitts and I.D.B. Stark. Observable properties of higher order functions that dynamically create local names, or: What's new? In Mathematical Foundations of Computer Science, Proc. 18th Int. Symp., Gdańsk, 1993, volume 711 of Lecture Notes in Computer Science, pages 122–141. Springer-Verlag, Berlin, 1993.
R. Stata and J.V. Guttag. Modular reasoning in the presence of subclassing. ACM SIGPLAN Notices, 30(10):200–214, October 1995. OOPSLA '95 conference proceedings.
A. Sernadas, C. Sernadas, and J.F. Costa. Object specification logic. Journal of Logic and Computation, 5(5):603–630, 1995.
M. Tofte. Type inference for polymorphic references. Information and Computation, 89(1):1–34, November 1990.
A.K. Wright and M. Felleisen. A syntactic approach to type soundness. Information and Computation, 115(1):38–94, November 1994.
A. Yonezawa and M. Tokoro, editors. Object-oriented Concurrent Programming. MIT Press, 1987.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Abadi, M., Leino, K.R.M. (1997). A logic of object-oriented programs. In: Bidoit, M., Dauchet, M. (eds) TAPSOFT '97: Theory and Practice of Software Development. CAAP 1997. Lecture Notes in Computer Science, vol 1214. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0030634
Download citation
DOI: https://doi.org/10.1007/BFb0030634
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-62781-4
Online ISBN: 978-3-540-68517-3
eBook Packages: Springer Book Archive