The dynamic aspects of the object-oriented paradigm have prevented the adoption of the latter for the implementation of high integrity systems using the SPARK approach. This paper presents a proposal that allows object-oriented programming in SPARK 95, whereas supporting SPARK's static approach for verification by imposing a notion of behavioural subtyping between a type and all its subtypes. Behavioural subtyping supports modular reasoning through supertype abstraction, hence all proofs can be discharged based only on nominal/declared types. An example of proof is also presented.
Download Not Available

BibTex Entry

@inproceedings{Lin2003,
 author = {T.-M. Lin and J.A. McDermid},
 booktitle = {Reliable Software Technologies---Ada-Europe 2003},
 editor = {J.-P. Rosen and A. Strohmeier},
 note = {behavioural subtyping, modular reasoning, supertype abstraction, object-oriented programming, SPARK},
 pages = {309-321},
 publisher = {Springer-Verlag},
 series = {Lecture Notes in Computer Science},
 title = {A Behavioural Notion of Subtyping for Object-Oriented Programming in SPARK95},
 volume = {2655},
 year = {2003}
}