University of Cambridge

Logic
&
Semantics

Fold and Unfold for Program Semantics

By Graham Hutton (23rd January 1998)

In functional programming, there is considerable interest in the use of recursion operators such as fold and unfold to structure programs, and in the use of algebraic properties of these operators to reason about programs. In this talk I will explain how the same techniques can be used to structure and reason about program semantics within a functional language. I will show how denotational semantics can be written using fold, how operational semantics can be written using unfold, and how reasoning about such semantics can be simplified by using algebraic properties of fold and unfold. The techniques will be illustrated using a simple language of concurrent processes.

LS Home page or Talks in 1997