Correctness of Data Representations Involving Heap Data Structures

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 is found that the correspondences between data representations are not simply relations between states, but more intricate correspondences that also need to keep track of visible locations whose pointers can be stored and leaked.

[1]  John C. Reynolds,et al.  Towards a theory of type structure , 1974, Symposium on Programming.

[2]  Hongseok Yang,et al.  Correctness of data representations involving heap data structures , 2004, Sci. Comput. Program..

[3]  Dan R. Ghica,et al.  Semantics of dynamic variables in Algol-like languages , 1998 .

[4]  Peter W. O'Hearn,et al.  Parametricity and local variables , 1995, JACM.

[5]  Philip Wadler,et al.  The essence of functional programming , 1992, POPL '92.

[6]  Ian Stark Categorical models for local names , 1996, LISP Symb. Comput..

[7]  Uday S. Reddy,et al.  Parametricity as a notion of uniformity in reflexive graphs , 2002 .

[8]  John C. Mitchell,et al.  Abstract types have existential types , 1985, POPL.

[9]  John C. Mitchell,et al.  Abstract types have existential type , 1988, TOPL.

[10]  C. A. R. Hoare,et al.  A contribution to the development of ALGOL , 1966, CACM.

[11]  R. D. Tennent,et al.  Applications of Categories in Computer Science: Semantics of local variables , 1992 .

[12]  Uday S. Reddy,et al.  Objects and Classes in Algol-Like Languages , 2002, Inf. Comput..

[13]  Peter W. O'Hearn,et al.  From Algol to polymorphic linear lambda-calculus , 2000, JACM.

[14]  Peter W. O'Hearn,et al.  Separation and information hiding , 2004, POPL.

[15]  John C. Reynolds,et al.  Intuitionistic reasoning about shared mutable data structure , 1999 .

[16]  Samson Abramsky,et al.  A fully abstract game semantics for general references , 1998, Proceedings. Thirteenth Annual IEEE Symposium on Logic in Computer Science (Cat. No.98CB36226).

[17]  Edmund Robinson,et al.  Reflexive graphs and parametric polymorphism , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[18]  Hongseok Yang,et al.  Local reasoning for stateful programs , 2001 .

[19]  Peter W. O'Hearn,et al.  Local Reasoning about Programs that Alter Data Structures , 2001, CSL.

[20]  John C. Reynolds,et al.  The essence of ALGOL , 1997 .

[21]  Albert R. Meyer,et al.  Towards fully abstract semantics for local variables , 1988, POPL '88.

[22]  Peter W. O'Hearn,et al.  Algol-Like Languages: v. 2 , 1996 .

[23]  Ian David Bede Stark,et al.  Names and higher-order functions , 1994 .

[24]  Frank J. Oles,et al.  A category-theoretic approach to the semantics of programming languages , 1982 .

[25]  Paul Blain Levy,et al.  Possible World Semantics for General Storage in Call-By-Value , 2002, CSL.

[26]  R. D. Tennent Correctness of data representations in Algol-like languages , 1994 .

[27]  Simon L. Peyton Jones,et al.  State in Haskell , 1995, LISP Symb. Comput..

[28]  Anindya Banerjee,et al.  Representation independence, confinement and access control [extended abstract] , 2002, POPL '02.

[29]  Paul Blain Levy,et al.  Call-by-push-value , 2022, ACM SIGLOG News.