Skip to main content

Pointers and Records in the Unifying Theories of Programming

  • Conference paper
Unifying Theories of Programming (UTP 2006)

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

Included in the following conference series:

Abstract

We present a theory of pointers and records that provides a representation for objects and sharing in languages like Java and C++. Our approach to pointers is based on Paige’s entity groups, which give an abstract view of storage as equivalence classes of variables that share the same memory location. We first define our theory as a restriction of the general theory of relations, and, as a consequence, it does not distinguish between terminating and non-terminating programs. Therefore, we link it with the theory of designs, providing a foundation for reasoning about total correctness of pointer-based sequential programs. Our work is a step towards the semantics of an object-oriented language that also integrates constructs for specifying state-rich and concurrent systems.

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: 10th Asia-Pacific Software Engineering Conference (APSEC 2003), p. 425. IEEE Computer Society, Los Alamitos (2003)

    Chapter  Google Scholar 

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

    Google Scholar 

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

    MATH  Google Scholar 

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

    Article  Google Scholar 

  5. Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall International, Englewood Cliffs (1985)

    MATH  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  9. 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, pp. 183–221. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

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

    MATH  Google Scholar 

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

    Chapter  Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

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

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

    Chapter  Google Scholar 

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

    Google Scholar 

  16. Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice-Hall Series in Computer Science. Prentice-Hall, Englewood Cliffs (1998)

    Google Scholar 

  17. 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. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

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

    Google Scholar 

  19. Woodcock, J.C.P., Cavalcanti, A.L.C.: 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 

  20. Woodcock, J.C.P., Davies, J.: Using Z—Specification, Refinement, and Proof. Prentice-Hall, Englewood Cliffs (1996)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cavalcanti, A., Harwood, W., Woodcock, J. (2006). Pointers and Records in the Unifying Theories of Programming. In: Dunne, S., Stoddart, B. (eds) Unifying Theories of Programming. UTP 2006. Lecture Notes in Computer Science, vol 4010. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11768173_12

Download citation

  • DOI: https://doi.org/10.1007/11768173_12

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-34752-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics