Skip to main content

A Behavioural Notion of Subtyping for Object-Oriented Programming in SPARK95

  • Conference paper
  • First Online:
Reliable Software Technologies — Ada-Europe 2003 (Ada-Europe 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2655))

Included in the following conference series:

  • 321 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. P. Amey and G. Finnie. SPARK95 — differences from SPARK83. Technical Report S.P0468.73.46, Praxis Critical Systems Limited, September 1998.

    Google Scholar 

  2. J.G.P. Barnes. High Integrity Ada: The Spark Approach. Addison-Wesley, 1997.

    Google Scholar 

  3. G. Booch. Object-Oriented Analysis and Design with Applications. Benjamin/Cummings, 2nd edition, 1994.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. L. Cardelli. A semantic of multiple inheritance. Information and Computation, 76(2/3):138–164, 1988.

    Article  MATH  MathSciNet  Google Scholar 

  6. R. Chapman and P. Amey. SPARK toolset release note-release 6.1. Technical Report EXM/RN, Praxis Critical Systems Limited, 2002.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. A.R. Diller. Z: An Introduction to Formal Methods. John Wiley, 2nd edition, 1994.

    Google Scholar 

  9. R.B. Findler, M. Latendresse, and M. Felleisen. Behavioral contracts and behavioral subtyping. ACM SIGSOFT Software Engineering Notes, 26(5):229–236, 2001.

    Article  Google Scholar 

  10. E. Lamm. Adding Design by Contract to the Ada language. In Ada-Europe 2002, volume 2361 of LNCS, pages 205–218. Springer-Verlag, 2002.

    Chapter  Google Scholar 

  11. G.T. Leavens. Modular specification and verification of object-oriented programs. IEEE Software, 8(4):72–80, 1991.

    Article  Google Scholar 

  12. G.T. Leavens and D. Pigozzi. A complete algebraic characterization of behavioral subtyping. Acta Informatica, 36(8):617–663, 2000.

    Article  MATH  MathSciNet  Google Scholar 

  13. G.T. Leavens and W.E. Weihl. Specification and verification of object-oriented programs using supertype abstraction. Acta Informatica, 32(8):705–778, 1995.

    MATH  MathSciNet  Google Scholar 

  14. 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/.

  15. 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.

    Google Scholar 

  16. B.H. Liskov and J.M. Wing. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6):1811–1841, 1994.

    Article  Google Scholar 

  17. W. Marsh. Formal semantics of SPARK: Static semantics (Version 1.3). Technical report, Program Validation Ltd., 1994.

    Google Scholar 

  18. B. Meyer. Design by contract. Technical Report TR-EI-12/CO, ISE Inc., 1987.

    Google Scholar 

  19. B. Meyer. Object-Oriented Software Construction. Prentice Hall, 2nd edition, 1997.

    Google Scholar 

  20. I. O’Neill. Formal semantics of SPARK: Dynamic semantics (Version 1.4). Technical report, Program Validation Ltd., October 1994.

    Google Scholar 

  21. S.T. Taft and R.A. Duff, editors. Ada 95 Reference Manual: Language and Standard Libraries, volume 1246 of LNCS. Springer-Verlag, 1997.

    Google Scholar 

  22. M. Utting. An Object-Oriented Refinement Calculus with Modular Reasoning. PhD thesis, Department of Computer Science, The University of New South Wales, 1992.

    Google Scholar 

  23. M. Wolczko. Semantics of Object-Oriented Languages. PhD thesis, Department of Computer Science, The University of Manchester, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics