Reasoning about Pointers in Refinement Calculus

  • Authors:
  • Ralph-Johan Back;Xiaocong Fan;Viorel Preoteasa

  • Affiliations:
  • -;-;-

  • Venue:
  • APSEC '03 Proceedings of the Tenth Asia-Pacific Software Engineering Conference Software Engineering Conference
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Pointers are an important programming concept. Theyare used explicitely or implicitly in many programming languages.In particular, the semantics of object-oriented programminglanguages rely on pointers. We introduce a semanticsfor pointer structures. Pointers are seen as indexesand pointer fields are functions from these indexes to values.Using this semantics we turn all pointer operationsinto simple assignments and then we use refinement calculustechniques to construct a pointer-manipulating programthat checks whether or not a single linked list has a loop. Wealso introduce an induction principle on pointer structuresin order to reduce complexity of the proofs.