Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

An example of local reasoning in BI pointer logic: the SchorrWaite graph marking algorithm

Summary: An example of local reasoning in BI pointer logic: the
Schorr­Waite graph marking algorithm
Hongseok Yang
University of Illinois at Urbana­Champaign and University of Birmingham
hyang@cs.uiuc.edu, H.Yang@cs.bham.ac.uk
January 6, 2001
1 Introduction
Handling pointers in a programming logic has been one of the most important and difficult problems
in programming language research. The difficulty does not lie in coming up with any form of
programming logic for pointer programs; in fact, there exist approaches either based on the ``pointer
as an index of an array'' idea [3] or on the use of semantic­based substitutions [4, 1]. Instead, the
core of the problem is to obtain a formalism which matches up with an informal reasoning by
programmers and algorithm designers. That is, the verification of a program should be only as
complicated as an informal correctness argument for the program. Most of the existing formalisms
fail in this criteria: when they are used in verifying a pointer program, the verification based on
them becomes significantly more complicated than an informal argument.
Only recently, Reynolds, Ishtiaq and O'Hearn [6, 2, 7] pointed out that one way to achieve such
a match is to exploit the locality of memory access within a code fragment: usually for a given code
fragment, only small number of cells on the heap are accessed. Ishtiaq and O'Hearn formulated
a logic for pointer programs based on the logic of Bunched Implications [5] and proposed a rule


Source: Andrews, Peter B. - Department of Mathematical Sciences, Carnegie Mellon University
Reynolds, John C. - School of Computer Science, Carnegie Mellon University


Collections: Computer Technologies and Information Sciences; Mathematics