White Rose University Consortium logo
University of Leeds logo University of Sheffield logo York University logo

Algebraic reasoning for object-oriented programming.

Borba, P., Sampaio, A., Cavalcanti, A. and Cornelio, M. (2004) Algebraic reasoning for object-oriented programming. Science of Computer Programming, 52 (1-3). pp. 53-100. ISSN 0167-6423

Full text not available from this repository.


We present algebraic laws for a language similar to a subset of sequential Java that includes inheritance, recursive classes, dynamic binding, access control, type tests and casts, assignment, but no sharing. These laws are proved sound with respect to a weakest precondition semantics. We also show that they are complete in the sense that they are sufficient to reduce an arbitrary program to a normal form substantially close to an imperative program; the remaining object-oriented constructs could be further eliminated if our language had recursive records. This suggests that our laws are expressive enough to formally derive behaviour preserving program transformations; we illustrate that through the derivation of provably-correct refactorings.

Item Type: Article
Institution: The University of York
Academic Units: The University of York > Computer Science (York)
Depositing User: York RAE Import
Date Deposited: 12 Feb 2009 17:04
Last Modified: 12 Feb 2009 17:04
Published Version: http://dx.doi.org/10.1016/j.scico.2004.03.003
Status: Published
Publisher: Elsevier Science B.V., Amsterdam
Identification Number: 10.1016/j.scico.2004.03.003
URI: http://eprints.whiterose.ac.uk/id/eprint/7480

Actions (repository staff only: login required)