Denotational semantics: a methodology for language development
Denotational semantics: a methodology for language development
Communication and concurrency
Data structures and program transformation
Science of Computer Programming
Functional programming with bananas, lenses, envelopes and barbed wire
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Warm fusion: deriving build-catas from recursive definitions
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Bananas in space: extending fold and unfold to exponential types
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Algebra of programming
Advanced Functional Programming, Second International School-Tutorial Text
Initial Algebra and Final Coalgebra Semantics for Concurrency
A Decade of Concurrency, Reflections and Perspectives, REX School/Symposium
Towards a Mathematical Operational Semantics
LICS '97 Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science
Generic validation of structural content with parametric modules
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Automatic Optimization of Multi-paradigm Declarative Programs
IBERAMIA 2002 Proceedings of the 8th Ibero-American Conference on AI: Advances in Artificial Intelligence
Calculating Functional Programs
Revised Lectures from the International Summer School and Workshop on Algebraic and Coalgebraic Methods in the Mathematics of Program Construction
Calculating functional programs
Algebraic and coalgebraic methods in the mathematics of program construction
Cycle therapy: a prescription for fold and unfold on regular trees
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
A tutorial on the universality and expressiveness of fold
Journal of Functional Programming
Constructing language processors with algebra combinators
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Modular and generic programming with interpreterlib
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Constructing language processors with algebra combinators
Science of Computer Programming
Modularity and Implementation of Mathematical Operational Semantics
Electronic Notes in Theoretical Computer Science (ENTCS)
Combining datatypes and effects
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Hi-index | 0.01 |
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.