Abstract
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 SPARK95, whereas supporting SPARK’s static approach for verification by imposing a notion of behavioural sub-typing between a type and all its subtypes. Behavioural sub-typing supports modular reasoning through super-type abstraction, hence all proofs can be discharged based only on nominal/declared types. An example of proof is also presented.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
P. Amey and G. Finnie. SPARK95 — differences from SPARK83. Technical Report S.P0468.73.46, Praxis Critical Systems Limited, September 1998.
J.G.P. Barnes. High Integrity Ada: The Spark Approach. Addison-Wesley, 1997.
G. Booch. Object-Oriented Analysis and Design with Applications. Benjamin/Cummings, 2nd edition, 1994.
A. Burns and T.-M. Lin. Adding temporal annotations and associated verification to the Ravenscar profile. In Ada-Europe 2003, LNCS (to appear). Springer-Verlag, 2003.
L. Cardelli. A semantic of multiple inheritance. Information and Computation, 76(2/3):138–164, 1988.
R. Chapman and P. Amey. SPARK toolset release note-release 6.1. Technical Report EXM/RN, Praxis Critical Systems Limited, 2002.
K.K. Dhara and G.T. Leavens. Forcing behavioral subtyping through specification inheritance. Technical Report 95-20c, Department of Computer Science, Iowa State University, 1997.
A.R. Diller. Z: An Introduction to Formal Methods. John Wiley, 2nd edition, 1994.
R.B. Findler, M. Latendresse, and M. Felleisen. Behavioral contracts and behavioral subtyping. ACM SIGSOFT Software Engineering Notes, 26(5):229–236, 2001.
E. Lamm. Adding Design by Contract to the Ada language. In Ada-Europe 2002, volume 2361 of LNCS, pages 205–218. Springer-Verlag, 2002.
G.T. Leavens. Modular specification and verification of object-oriented programs. IEEE Software, 8(4):72–80, 1991.
G.T. Leavens and D. Pigozzi. A complete algebraic characterization of behavioral subtyping. Acta Informatica, 36(8):617–663, 2000.
G.T. Leavens and W.E. Weihl. Specification and verification of object-oriented programs using supertype abstraction. Acta Informatica, 32(8):705–778, 1995.
T.-M. Lin. A formal semantics for MooZ (in portuguese). Master’s thesis, Department of Informatics, Federal University of Pernambuco (UFPE), 1993. Available from http://www.cin.ufpe.br/mooz/.
T.-M. Lin. Behavioural Subtype and Covariance of (Input) Arguments in Object-Oriented Specification Languages (submitted). PhD thesis, Department of Computer Science, The University of York, 2002.
B.H. Liskov and J.M. Wing. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6):1811–1841, 1994.
W. Marsh. Formal semantics of SPARK: Static semantics (Version 1.3). Technical report, Program Validation Ltd., 1994.
B. Meyer. Design by contract. Technical Report TR-EI-12/CO, ISE Inc., 1987.
B. Meyer. Object-Oriented Software Construction. Prentice Hall, 2nd edition, 1997.
I. O’Neill. Formal semantics of SPARK: Dynamic semantics (Version 1.4). Technical report, Program Validation Ltd., October 1994.
S.T. Taft and R.A. Duff, editors. Ada 95 Reference Manual: Language and Standard Libraries, volume 1246 of LNCS. Springer-Verlag, 1997.
M. Utting. An Object-Oriented Refinement Calculus with Modular Reasoning. PhD thesis, Department of Computer Science, The University of New South Wales, 1992.
M. Wolczko. Semantics of Object-Oriented Languages. PhD thesis, Department of Computer Science, The University of Manchester, 1988.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lin, TM., McDermid, J.A. (2003). A Behavioural Notion of Subtyping for Object-Oriented Programming in SPARK95. In: Rosen, JP., Strohmeier, A. (eds) Reliable Software Technologies — Ada-Europe 2003. Ada-Europe 2003. Lecture Notes in Computer Science, vol 2655. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44947-7_23
Download citation
DOI: https://doi.org/10.1007/3-540-44947-7_23
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40376-0
Online ISBN: 978-3-540-44947-8
eBook Packages: Springer Book Archive