2004
DOI: 10.1016/j.scico.2004.03.003
|View full text |Cite
|
Sign up to set email alerts
|

Algebraic reasoning for object-oriented programming

Abstract: 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 el… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
48
0

Year Published

2005
2005
2013
2013

Publication Types

Select...
8

Relationship

4
4

Authors

Journals

citations
Cited by 61 publications
(49 citation statements)
references
References 22 publications
1
48
0
Order By: Relevance
“…Refactoring preconditions are a subtle issue in object-orientation [7,8] and in aspect-orientation [12]. Accordingly, the preconditions of some refactorings we present have improved slightly since our previous work, and the current work has been updated accordingly.…”
Section: Aop Pls and Refactoringmentioning
confidence: 99%
See 1 more Smart Citation
“…Refactoring preconditions are a subtle issue in object-orientation [7,8] and in aspect-orientation [12]. Accordingly, the preconditions of some refactorings we present have improved slightly since our previous work, and the current work has been updated accordingly.…”
Section: Aop Pls and Refactoringmentioning
confidence: 99%
“…The process of defining programming laws and showing how these can be used to derive refactorings has also been addressed for for object-oriented languages [7]. Such research additionally formally proves not only the completeness of such set of laws, but also the correctness of each law, by relying on a weakest precondition semantics [9].…”
Section: Programming Laws Model Refactoring and Optimizationmentioning
confidence: 99%
“…On the other hand, any variable or field having some K as its declared type does not store an object instance of K but a reference to it. This is the main difference of our language with respect to [6,8] where a copy semantics is adopted and variables/fields hold full objects.…”
Section: The Languagementioning
confidence: 99%
“…Previous work [6,8] defines theories for objectorientation useful to prove transformations of programs such as refactorings. However, the language used in these works has copy semantics, lacking the concept of reference and, thus, restricting the refactorings that can be characterized.…”
Section: Introductionmentioning
confidence: 99%
“…To bridge this gap between specification and implementation, specification refactoring rules have been proposed [7,8,9,11,2,5]. These allow the structure of a specification to be incrementally transformed to represent a given design.…”
Section: Introductionmentioning
confidence: 99%