Skip to main content

A Theory of Pointers for the UTP

  • Conference paper
Theoretical Aspects of Computing - ICTAC 2008 (ICTAC 2008)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5160))

Included in the following conference series:

Abstract

Hoare and He’s unifying theories of programming (UTP) provide a collection of relational models that can be used to study and compare several programming paradigms. In this paper, we add to the UTP a theory of pointers and records that provides a model for objects and sharing in languages like Java and C++. Our work is based on the hierarchical addressing scheme used to refer to record fields (or object attributes) in conventional languages, rather than explicit notions of location. More importantly, we support reasoning about the structure and sharing of data, as well as their, possibly infinite, values. We also provide a general account of UTP theories characterised by conjunctive healthiness conditions, of which our theory is an example.

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. Back, R.J., Fan, X., Preoteasa, V.: Reasoning about Pointers in Refinement Calculus. In: APSEC 2003, p. 425. IEEE Computer Society Press, Los Alamitos (2003)

    Google Scholar 

  2. Bakewell, A., Plump, D., Runciman, C.: Specifying Pointer Structures by Graph Reduction. In: Pfaltz, J.L., Nagl, M., Böhlen, B. (eds.) AGTIVE 2003. LNCS, vol. 3062, pp. 30–44. Springer, Heidelberg (2004)

    Google Scholar 

  3. Brookes, S.D.: A Fully Abstract Semantics and a Proof System for an Algol-like Language with Sharing. In: Melton, A. (ed.) MFPS 1985. LNCS, vol. 239, pp. 59–100. Springer, Heidelberg (1986)

    Google Scholar 

  4. Burstall, R.M.: Some techniques for proving correctness of programs which alter data structures. Machine Intelligence 7, 23–50 (1972)

    MATH  Google Scholar 

  5. Cavalcanti, A.L.C., Harwood, W., Woodcock, J.C.P.: Pointers and Records in the Unifying Theories of Programming. In: Dunne, S., Stoddart, B. (eds.) UTP 2006. LNCS, vol. 4010, pp. 200–216. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  6. Cavalcanti, A.L.C., Sampaio, A.C.A., Woodcock, J.C.P.: Unifying Classes and Processes. SoSyM 4(3), 277–296 (2005)

    Article  Google Scholar 

  7. Cavalcanti, A.L.C., Woodcock, J.C.P.: A Tutorial Introduction to CSP in Unifying Theories of Programming. In: Cavalcanti, A., Sampaio, A., Woodcock, J. (eds.) PSSE 2004. LNCS, vol. 3167, pp. 220–268. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  8. Chen, Y., Sanders, J.: Compositional Reasoning for Pointer Structures. In: Uustalu, T. (ed.) MPC 2006. LNCS, vol. 4014, pp. 115–139. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  9. Desharnais, J., Möller, B., Struth, G.: Modal Kleene Algebra and applications a survey. Methods in Computer Science 1, 93–131 (2004)

    Google Scholar 

  10. Harwood, W., Cavalcanti, A.L.C., Woodcock, J.C.P.: A Model of Pointers for the Unifying Theories of Programming – Extended Version. Technical report, University of York, Department of Computer Science, UK (2008), www-users.cs.york.ac.uk/~alcc/publications/HCW08.pdf

  11. Hoare, C.A.R., Jifeng, H.: Unifying Theories of Programming. In: Unifying Theories of Programming. Prentice-Hall, Englewood Cliffs (1998)

    Google Scholar 

  12. Hoare, C.A.R., Jifeng, H.: A trace model for pointers and objects. Programming methodology, 223 – 245 (2003)

    Google Scholar 

  13. Ishtiaq, S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: POPL. ACM Press, New York (2001)

    Google Scholar 

  14. Liu, Z., He, J., Li, X.: rCOS: Refinement of Component and Object Systems. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2004. LNCS, vol. 3657, Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  15. Meyer, B.: Eiffel: the language. Prentice-Hall, Englewood Cliffs (1992)

    MATH  Google Scholar 

  16. Meyer, B.: Towards practical proofs of class correctness. In: Bert, D., P. Bowen, J., King, S. (eds.) ZB 2003. LNCS, vol. 2651, pp. 359–387. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  17. Milne, R., Strachey, C.: A Theory of Programming Language Semantics. Chapman and Hall, Boca Raton (1976)

    MATH  Google Scholar 

  18. Möller, B.: Calculating with pointer structures. In: IFIP TC 2 WG 2.1 International Workshop on Algorithmic Languages and Calculi, pp. 24–48. Chapman & Hall, Ltd, Boca Raton (1997)

    Google Scholar 

  19. Naumann, D.A.: Predicate Transformer Semantics of a Higher Order Imperative Language with Record Subtypes. SCP 41(1), 1–51 (2001)

    MATH  MathSciNet  Google Scholar 

  20. O’Hearn, P., Reynolds, J., Yang, H.: Local reasoning about programs that alter data structures. In: Fribourg, L. (ed.) CSL 2001 and EACSL 2001. LNCS, vol. 2142, pp. 1–19. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  21. Paige, R.F., Ostroff, J.S.: ERC – An object-oriented refinement calculus for Eiffel. Formal Aspects of Computing 16(1), 5 (2004)

    Article  Google Scholar 

  22. Qin, S., Dong, J.S., Chin, W.N.: A Semantic Foundation for TCOZ in Unifying Theories of Programming. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, pp. 321–340. Springer, Heidelberg (2003)

    Google Scholar 

  23. Reynolds, J.: Separation logic: a logic for shared mutable data structures. In: IEEE Symposium on Logic in Computer Science, pp. 55–74. IEEE Press, Los Alamitos (2002)

    Google Scholar 

  24. Reynolds, J.C.: Intuitionistic reasoning about shared mutable data structure. In: Millenial Perspectives in Computer Science. Palgrave (2001)

    Google Scholar 

  25. Santos, T.L.V.L., Cavalcanti, A.L.C., Sampaio, A.C.A.: Object Orientation in the UTP. In: Dunne, S., Stoddart, B. (eds.) UTP 2006. LNCS, vol. 4010, pp. 18–37. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  26. Smith, G.: The Object-Z Specification Language. Kluwer Academic Publishers, Dordrecht (1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

John S. Fitzgerald Anne E. Haxthausen Husnu Yenigun

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Harwood, W., Cavalcanti, A., Woodcock, J. (2008). A Theory of Pointers for the UTP. In: Fitzgerald, J.S., Haxthausen, A.E., Yenigun, H. (eds) Theoretical Aspects of Computing - ICTAC 2008. ICTAC 2008. Lecture Notes in Computer Science, vol 5160. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85762-4_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-85762-4_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-85761-7

  • Online ISBN: 978-3-540-85762-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics