## Functional pearl: Unfolding pointer algorithms (2001)

Venue: | Journal of Functional Programming |

Citations: | 6 - 0 self |

### BibTeX

@ARTICLE{Bird01functionalpearl:,

author = {Richard S. Bird},

title = {Functional pearl: Unfolding pointer algorithms},

journal = {Journal of Functional Programming},

year = {2001},

volume = {11},

pages = {2001}

}

### OpenURL

### Abstract

A fair amount has been written on the subject of reasoning about pointer algorithms. There was a peak about 1980 when everyone seemed to be tackling the formal verification of the Schorr–Waite marking algorithm, including Gries (1979, Morris (1982) and Topor (1979). Bornat (2000) writes: “The Schorr–Waite algorithm is the

### Citations

215 |
Introduction to Functional Programming using Haskell
- Bird
- 1998
(Show Context)
Citation Context ... f [a := c] a /∈ f ⋆ x ⇒ f [a := b] ⋆ x = f ⋆ x (1) In words, if a doesn’t appear on the list f ⋆ x we can change its f -value to anything we like. Proof of (1) is a simple exercise in induction (see =-=Bird, 1998-=-, Ch. 9), and we omit details. 3 Reversal Let us begin with something that every functional programmer knows: efficient list reversal. Everyone knows that the naive definition of reverse, namely, reve... |

107 | Intuitionistic reasoning about shared mutable data structure
- Reynolds
- 2000
(Show Context)
Citation Context ...nce of interest, driven by new ideas in relational algebras (Möeller, 1993), in data refinement Butler (1999), in type theory (Hofmann, 2000; Walker and Morrisett, 2000), in novel kinds of assertion (=-=Reynolds, 2000-=-), and by the demands of mechanised reasoning (Bornat, 2000). Most approaches end up being based in the Floyd–Dijkstra–Hoare tradition with loops and invariant assertions. To be sure, when dealing wit... |

99 | Proving pointer programs in Hoare logic - Bornat - 2000 |

85 | A type system for bounded space and functional in-place update
- Hofmann
- 2000
(Show Context)
Citation Context ...ess quiet for a while, but in the last few years there has been a resurgence of interest, driven by new ideas in relational algebras (Möeller, 1993), in data refinement Butler (1999), in type theory (=-=Hofmann, 2000-=-; Walker and Morrisett, 2000), in novel kinds of assertion (Reynolds, 2000), and by the demands of mechanised reasoning (Bornat, 2000). Most approaches end up being based in the Floyd–Dijkstra–Hoare t... |

66 | W.M.: An efficient machine-independent procedure for garbage collection in various list structures - Schorr, Waite - 1967 |

48 | The Under-Appreciated Unfold - Gibbons, Jones - 1998 |

29 | Verification of array, record, and pointer operations in pascal - Luckham, Suzuki - 1979 |

23 | Introduction to Functional Programming using - Bird - 1998 |

16 | Calculating with pointer structures - Möller - 1997 |

12 | Verification of programs that destructively manipulate data - Mason - 1988 |

10 | Calculating with pointers - Bijlsma - 1989 |

10 | The Schorr-Waite graph marking algorithm - Gries - 1979 |

9 | Calculational derivation of pointer algorithms from tree operations - Butler - 1999 |

9 | A Proof of the Schorr-Waite Algorithm - Morris - 1981 |

7 | Calculating with acyclic and cyclic lists - Möller - 1999 |

4 |
Proving pointer programs
- Bornat
- 2000
(Show Context)
Citation Context ...Möeller, 1993), in data refinement Butler (1999), in type theory (Hofmann, 2000; Walker and Morrisett, 2000), in novel kinds of assertion (Reynolds, 2000), and by the demands of mechanised reasoning (=-=Bornat, 2000-=-). Most approaches end up being based in the Floyd–Dijkstra–Hoare tradition with loops and invariant assertions. To be sure, when dealing with any recursively-defined linked structure some declarative... |

1 | The correctness of the Schorr-Waite marking algorithm - Topor - 1979 |

1 | An ecient machine-independent procedure for Functional pearls 13 garbage collection in various list structures - Schorr, Waite - 1967 |