Abstract: |
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.
|