| | |
Summary: Lambda Calculus with Explicit Recursion
Zena M. Ariola
Computer and Information Science Department
University of Oregon. Eugene, OR 97401, USA
email: ariola@cs.uoregon.edu
Jan Willem Klop
CWI, P.O. Box 94079, 1090 GB Amsterdam, The Netherlands
and
Department of Mathematics and Computer Science
Vrije Universiteit, De Boelelaan 1081a, 1081 HV Amsterdam
email: jwk@cwi.nl
Abstract
This paper is concerned with the study of –calculus with explicit recursion, namely of cyclic –graphs. The
starting point is to treat a –graph as a system of recursion equations involving –terms, and to manipulate
such systems in an unrestricted manner, using equational logic, just as is possible for firstorder term rewriting.
Surprisingly, now the confluence property breaks down in an essential way.
Confluence can be restored by introducing a restraining mechanism on the `substitution' operation. This
leads to a family of –graph calculi, which can be seen as an extension of the family of –oecalculi (–calculi
with explicit substitution). While the –oecalculi treat the letconstruct as a firstclass citizen, our calculi
support the letrec, a feature that is essential to reason about time and space behavior of functional languages
|