Article ID Journal Published Year Pages File Type
430731 Journal of Computer and System Sciences 2012 30 Pages PDF
Abstract

We show that verification of object-oriented programs by means of the assertional method can be achieved in a simple way by exploiting a syntax-directed transformation from object-oriented programs to recursive programs. This transformation suggests natural proofs rules and its correctness helps us to establish soundness and relative completeness of the proposed proof system. One of the difficulties is how to properly deal in the assertion language with the instance variables and aliasing. The discussed programming language supports arrays, instance variables, failures and recursive methods with parameters. We also explain how the transformational approach can be extended to deal with other features of object-oriented programming, like classes, inheritance, subtyping and dynamic binding.

► We present proof systems for (strong) partial correctness of object-oriented programs. ► We show relative completeness of the systems by transformation to recursive programs. ► The transformation preserves semantics, correctness, and proofs in a homomorphic way. ► The completeness result considers programs with variables over abstract data types. ► The transformational approach carries over to inheritance and subtype polymorphism.

Related Topics
Physical Sciences and Engineering Computer Science Computational Theory and Mathematics
Authors
, , , ,