Verification of programs using inspector methods

作者: Frank Piessens , Bart Jacobs

DOI:

关键词:

摘要: Most classes in an object-oriented program provide access to object’s state through methods, so that client code does not depend on and cannot interfere with the internal representation composed of fields component objects. Methods used for this purpose are sometimes called inspector methods. In order extend benefits methods specifications, method contracts non-inspector may be expressed using hence providing support abstraction specifications. paper, we propose approach verification programs use object invariants. Inspector have parameters, they objects passed as arguments. Our builds Boogie methodology invariants ownership. Performing a programming language allows aliasing references poses framing problem. Specifically, needs able tell whether modifying given or calling affect value call. We solve by modeling functions take arguments only those parts heap which depend. Thanks novel logical encoding heap, can do without breaking information hiding, even cases where The core our has been implemented custom build Spec# verifier.

参考文章(8)
K. Rustan M. Leino, Peter Müller, A verification methodology for model fields european symposium on programming. pp. 115- 130 ,(2006) , 10.1007/11693024_9
Ioannis T. Kassios, Dynamic Frames: Support for Framing, Dependencies and Sharing Without Restrictions FM 2006: Formal Methods. pp. 268- 283 ,(2006) , 10.1007/11813040_19
Mike Barnett, K. Rustan M. Leino, Wolfram Schulte, The Spec# Programming System: An Overview Construction and Analysis of Safe, Secure, and Interoperable Smart Devices. ,vol. 3362, pp. 49- 69 ,(2005) , 10.1007/978-3-540-30569-9_3
Gary T. Leavens, Albert L. Baker, Clyde Ruby, Preliminary design of JML ACM SIGSOFT Software Engineering Notes. ,vol. 31, pp. 1- 38 ,(2006) , 10.1145/1127878.1127884
Mike Barnett, Robert DeLine, Manuel Fähndrich, K. Rustan M. Leino, Wolfram Schulte, Verification of object-oriented programs with invariants The Journal of Object Technology. ,vol. 3, pp. 27- 56 ,(2004) , 10.5381/JOT.2004.3.6.A2
Matthew Parkinson, Gavin Bierman, Separation logic and abstraction symposium on principles of programming languages. ,vol. 40, pp. 247- 258 ,(2005) , 10.1145/1040305.1040326
Matthew J. Parkinson, Local reasoning for Java ,(2005)