A trace model for pointers and objects

  • Authors:
  • C. A. R. Hoare;He Jifeng

  • Affiliations:
  • -;International Institute of Software Technology, United Nations University, P.O. Box 3058, Macau

  • Venue:
  • Programming methodology
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Object-oriented programs [5, 6, 10] are notoriously prone to the following kinds of error, which could lead to increasingly severe problems in the presence of tasking: 1. Following a null pointer; 2. Deletion of an accessible object; 3. Failure to delete an inaccessible object; 4. Interference due to equality of pointers; and 5. Inhibition of optimisation due to fear of (4). Type disciplines and object classes are a great help in avoiding these errors. Stronger protection may be obtainable with the help of assertions, particularly invariants, which are intended to be true before and after each call of a method that updates the structure of the heap. This note introduces a mathematical model and language for the formulation of assertions about objects and pointers, and suggests that a graphical calculus [4] may help in reasoning about program correctness. It deals with both garbage-collected heaps and the other kind. The theory is based on a trace model of graphs, using ideas from process algebra; and our development seeks to exploit this analogy as a unifying principle.