Behavioral Subtyping is Equivalent to Modular Reasoning for Object-oriented Programs

作者: David A. Naumann , Gary T. Leavens

DOI:

关键词:

摘要: Behavioral subtyping is an established idea that enables modular reasoning about behavioral properties of object-oriented programs. It requires syntactic subtypes are refinements. validates a dynamically-dispatched method call, say E .m(), using the specification associated with static type receiver expression . For languages references and mutable objects has not been rigorously formalized as such standard informal notion inadequacies. This paper formalizes introduces new formalization reasoning, called supertype abstraction. A Java-like sequential language considered, classes interfaces, recursive types, first-class exceptions handlers, dynamically allocated heap objects; semantics designed to serve foundation for Java Modeling Language (JML), widely used language. characterized sound semantically complete

参考文章(67)
Gary T. Leavens, Verifying object-oriented programs that use subtypes Massachusetts Institute of Technology. ,(1989) , 10.21236/ADA209118
Lilian Burdy, Antoine Requet, Jean-Louis Lanet, Java Applet Correctness: A Developer-Oriented Approach formal methods. pp. 422- 439 ,(2003) , 10.1007/978-3-540-45236-2_24
Gordon Plotkin, John Power, Notions of Computation Determine Monads foundations of software science and computation structure. pp. 342- 356 ,(2002) , 10.1007/3-540-45931-6_24
Betty H. C. Cheung, Yonghao Chen, A semantic foundation for specification matching Foundations of component-based systems. pp. 91- 109 ,(2000)
David A. Naumann, From Coupling Relations to Mated Invariants for Checking Information Flow Computer Security – ESORICS 2006. pp. 279- 296 ,(2006) , 10.1007/11863908_18
S. Owre, J. M. Rushby, N. Shankar, PVS: A Prototype Verification System conference on automated deduction. pp. 748- 752 ,(1992) , 10.1007/3-540-55602-8_217
Pierre America, Designing an Object-Oriented Programming Language with Behavioural Subtyping Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages. pp. 60- 90 ,(1990) , 10.1007/BFB0019440
Bernhard Reus, Modular semantics and logics of classes computer science logic. pp. 456- 469 ,(2003) , 10.1007/978-3-540-45220-1_37
Anindya Banerjee, Nevin Heintze, Jon G. Riecke, Design and Correctness of Program Transformations Based on Control-Flow Analysis international symposium on theoretical aspects of computer software. pp. 420- 447 ,(2001) , 10.1007/3-540-45500-0_21
J. M. Wing, A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS Massachusetts Institute of Technology. ,(1983)