Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Correctness of data representations involving heap data structures

Published: 01 March 2004 Publication History

Abstract

While the semantics of local variables in programming languages is by now well-understood, the semantics of pointer-addressed heap variables is still an outstanding issue. In particular, the commonly assumed relational reasoning principles for data representations have not been validated in a semantic model of heap variables. In this paper, we define a parametricity semantics for a Pascal-like language with pointers and heap variables which gives such reasoning principles. It turns out that the correspondences between data representations cannot simply be relations between states, but more intricate correspondences that also need to keep track of visible locations whose pointers can be stored and leaked.

References

[1]
{1} S. Abramsky, K. Honda, G. McCusker, A fully abstract game semantics for general references, in: Lecture Notes in Computer Science, 1998, pp. 334-344.]]
[2]
{2} A. Banerjee, D.A. Naumann, Representation independence, confinement and access control, in: POPL, ACM, New York, 2002.]]
[3]
{3} B.P. Dunphy, Parametricity as a notion of uniformity in reflexive graphs, Ph.D. Thesis, University of Illinois, Department of Mathematics, 2002.]]
[4]
{4} D.R. Ghica, Semantics of dynamic variables in Algol-like languages, Master's Thesis, Queen's University, Kingston, Canada, March 1997.]]
[5]
{5} J. Launchbury, S.L. Peyton Jones, State in Haskell, J. Lisp. Symbolic Comput. 8 (4) (1995) 293-341.]]
[6]
{6} P.B. Levy, Call-by-push-value, Ph.D. Thesis, Queen Mary, University of London, March 2001.]]
[7]
{7} P.B. Levy, Possible world semantics for general storage in call-by-value, in: CSL, 2002, pp. 232-246.]]
[8]
{8} A.R. Meyer, K. Sieber, Towards fully abstract semantics for local variables, in: Fifteenth Ann. ACM Symp. on Princ. of Program. Lang., ACM, New York, 1988, pp. 191-203. (Reprinted as Chapter 7 of {16}).]]
[9]
{9} J.C. Mitchell, G.D. Plotkin, Abstract types have existential types, ACM Trans. Program. Lang. Systems 10 (3) (1988) 470-502.]]
[10]
{10} E. Moggi, Notions of computations and monads, Inform. Comput. 93 (1991) 55-92.]]
[11]
{11} P.W. O'Hearn, J.C. Reynolds, From Algol to polymorphic linear lambda-calculus, J. ACM 47 (1) (2000) 167-223.]]
[12]
{12} P.W. O'Hearn, J. Reynolds, H. Yang, Local reasoning about programs that alter data structures, in: L. Fribourg (Ed.), CSL (Berlin, 2001), Lecture Notes in Computer Science, vol. 2142, Springer, Berlin, 2001, pp. 1-19.]]
[13]
{13} P.W. O'Hearn, J. Reynolds, H. Yang, Separation and information hiding, in: ACM Symp. on Princ. of Program. Lang., ACM, New York, 2004, pp. 268-280.]]
[14]
{14} P.W. O'Hearn, R.D. Tennent, Semantics of local variables, in: M.P. Fourman, P.T. Johnstone, A.M. Pitts (Eds.), Applications of Categories in Computer Science, Cambridge University Press, Cambridge 1992, pp. 217-238.]]
[15]
{15} P.W. O'Hearn, R.D. Tennent, Parametricity and local variables, J. ACM 42 (3) (1995) 658-709. (Reprinted as Chapter 16 of {16}).]]
[16]
{16} P.W. O'Hearn, R.D. Tennent, Algol-like Languages (Two volumes), Birkhäuser, Boston, 1997.]]
[17]
{17} F.J. Oles, A category-theoretic approach to the semantics of programming languages, Ph.D. Thesis, Syracuse University, 1982.]]
[18]
{18} U.S. Reddy, When parametricity implies naturality, Electronic manuscript, University of Birmingham, http://www.cs.bham.ac.uk/~udr/, July 1997.]]
[19]
{19} U.S. Reddy, Objects and classes in Algol-like languages, in: FOOL 5: Fifth Intern. Workshop on Foundations of Object-oriented Languages, January 1998, electronic proceedings at http://pauillac.inria.fr/~remy/fool/proceedings.html.]]
[20]
{20} U.S. Reddy, Objects and classes in Algol-like languages, Inform. Comput. 172 (2002) 63-97.]]
[21]
{21} U.S. Reddy, H. Yang, Correctness of data representations involving heap data structures, in: Programming Languages and Systems: 12th European Symposium on Programming (2003), Lecture Notes in Computer Science, vol. 2618, Springer, Berlin, pp. 223-237.]]
[22]
{22} J.C. Reynolds, Towards a theory of type structure, in: Coll. sur la Programmation, Lecture Notes in Computer Science, vol. 19, Springer, Berlin, 1974, pp. 408-425.]]
[23]
{23} J.C. Reynolds, The essence of Algol, in: J.W. de Bakker, J.C. van Vliet (Eds.), Algorithmic Languages, North-Holland, Amsterdam, 1981, pp. 345-372 (Reprinted as Chapter 3 of {16}).]]
[24]
{24} J.C. Reynolds, Intuitionistic reasoning about shared mutable data structure, in: J. Davies, B. Roscoe, J. Woodcock (Eds.), Millenial Perspectives in Computer Science, Palgrave, Houndsmill, UK, 2000.]]
[25]
{25} E. Robinson, G. Rosolini, Reflexive graphs and parametric polymorphism, in: Proceedings, Ninth Annual IEEE Symposium on Logic in Computer Science, IEEE Computer Society Press, Silver Spring, MD, July 1994.]]
[26]
{26} I. Stark, Names and higher-order functions, Ph.D. Thesis, University of Cambridge Computer Laboratory, Tech. Rep. 363, 1995.]]
[27]
{27} I. Stark, Categorical models for local names, Lisp Symbolic Comput. 9 (1) (1996) 77-107.]]
[28]
{28} R.D. Tennent, Correctness of data representations in Algol-like languages, in: A.W. Roscoe (Ed.), A Classical Mind: Essays in Honor of C.A.R. Hoare, Prentice-Hall International, Englewood Cliffs, NJ, 1994, pp. 405-417.]]
[29]
{29} P. Wadler, The essence of functional programming, in: ACM Symp. on Princ. of Program. Lang., 1992, pp. 1-14.]]
[30]
{30} N. Wirth, C.A.R. Hoare, A contribution to the development of Algol, Comm. ACM 9 (6) (1966) 413 -432.]]
[31]
{31} H. Yang, Local reasoning for stateful programs, Ph.D. Thesis, The University of Illinois at Urbana-Champaign, Tech. Rep. UIUCDCS-R-2001-2227, 2001.]]

Cited By

View all
  • (2018)Algorithmic games for full ground referencesFormal Methods in System Design10.5555/3220753.322085452:3(277-314)Online publication date: 1-Jun-2018
  • (2017)A monad for full ground reference cellsProceedings of the 32nd Annual ACM/IEEE Symposium on Logic in Computer Science10.5555/3329995.3330044(1-12)Online publication date: 20-Jun-2017
  • (2012)An automata-theoretic model of idealized algolProceedings of the 39th international colloquium conference on Automata, Languages, and Programming - Volume Part II10.1007/978-3-642-31585-5_32(337-350)Online publication date: 9-Jul-2012
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Science of Computer Programming
Science of Computer Programming  Volume 50, Issue 1-3
Special issue on 12th European symposium on programming (ESOP 2003)
March 2004
264 pages

Publisher

Elsevier North-Holland, Inc.

United States

Publication History

Published: 01 March 2004

Author Tags

  1. denotational semantics
  2. imperative programming languages
  3. relational parametricity
  4. separation logic

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2018)Algorithmic games for full ground referencesFormal Methods in System Design10.5555/3220753.322085452:3(277-314)Online publication date: 1-Jun-2018
  • (2017)A monad for full ground reference cellsProceedings of the 32nd Annual ACM/IEEE Symposium on Logic in Computer Science10.5555/3329995.3330044(1-12)Online publication date: 20-Jun-2017
  • (2012)An automata-theoretic model of idealized algolProceedings of the 39th international colloquium conference on Automata, Languages, and Programming - Volume Part II10.1007/978-3-642-31585-5_32(337-350)Online publication date: 9-Jul-2012
  • (2012)Algorithmic games for full ground referencesProceedings of the 39th international colloquium conference on Automata, Languages, and Programming - Volume Part II10.1007/978-3-642-31585-5_30(312-324)Online publication date: 9-Jul-2012
  • (2011)Step-indexed kripke models over recursive worldsProceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/1926385.1926401(119-132)Online publication date: 26-Jan-2011
  • (2011)Step-indexed kripke models over recursive worldsACM SIGPLAN Notices10.1145/1925844.192640146:1(119-132)Online publication date: 26-Jan-2011
  • (2009)Correctly translating concurrency primitivesProceedings of the 2009 ACM SIGPLAN workshop on ML10.1145/1596627.1596633(27-38)Online publication date: 30-Aug-2009
  • (2007)Relational semantics for effect-based program transformations with dynamic allocationProceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming10.1145/1273920.1273932(87-96)Online publication date: 14-Jul-2007
  • (2007)Formalizing and verifying semantic type soundness of a simple compilerProceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming10.1145/1273920.1273922(1-12)Online publication date: 14-Jul-2007
  • (2006)Denotational semantics for a program logic of objectsMathematical Structures in Computer Science10.1017/S096012950600521416:2(313-358)Online publication date: 1-Apr-2006
  • Show More Cited By

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media