Fold and unfold for program semantics

被引:0
作者
Hutton, G [1 ]
机构
[1] Univ Nottingham, Dept Comp Sci, Languages & Programming Grp, Nottingham NG7 2RD, England
关键词
D O I
10.1145/291251.289457
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In this paper we explain how recursion operators can be used to structure and reason about program semantics within a functional language. In particular, we show how the recursion operator fold can be used to structure denotational semantics, how the dual recursion operator unfold can be used to structure operational semantics, and how algebraic properties of these operators can be used to reason about program semantics. The techniques are explained with the aid of two main examples, the first concerning arithmetic expressions, and the second concerning Milner's concurrent language CCS. The aim of the paper is to give functional programmers new insights into recursion operators, program semantics, and the relationships between them.
引用
收藏
页码:280 / 288
页数:9
相关论文
共 21 条
[1]  
[Anonymous], FORMAL METHODS VLSI
[2]  
Bird R., 1997, Algebra of Programming
[3]  
BIRD R, 1989, P MARKTOBERDORF INT
[4]  
GILL A, 1993, P ACM C FUNCT PROGR
[5]  
HUTTON G, 1998, UNPUB FOLD
[6]  
Jeuring J., 1996, LECT NOTES COMPUTER, V1129, P68
[7]  
JONES G, 1990, PRGTR1090 OXF U
[8]  
LAUNCHBURY J, 1995, P ACM C FUNCT PROGR
[9]  
MACLANE S, 1971, GRADUATE TEXTS MATH, V5
[10]   DATA-STRUCTURES AND PROGRAM TRANSFORMATION [J].
MALCOLM, G .
SCIENCE OF COMPUTER PROGRAMMING, 1990, 14 (2-3) :255-279