Algebraic approaches to program semantics
Algebraic approaches to program semantics
Iteration and abstract data types
ACM SIGPLAN Notices
A theoretical basis for stepwise refinement and the programming calculus
Science of Computer Programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
A calculus of refinements for program derivations
Acta Informatica
Data structures and program transformation
Science of Computer Programming
IEEE Transactions on Software Engineering
Eiffel: the language
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
A new iteration mechanism for the C++ programming language
ACM SIGPLAN Notices
Algebra of programming
Communications of the ACM
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
A Discipline of Programming
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
On the Refinement Calculus
MPC '95 Mathematics of Program Construction
Hi-index | 0.00 |
This paper concerns the introduction of an iterator into the refinement calculus. The construct is based on concepts from functional programming, and the work gives an interesting example of cross-fertilisation between the functional and imperative programming worlds. Specifically, the iterator construct it..ti uses the idea of a catamorphism -- the unique homomorphism from an initial algebra. The datatype for which the iterator is to be defined is considered as an initial algebra of an appropriate functor. The it..ti construct is formally defined as a recursive procedure, and it is shown that, if the value to be obtained by an iteration can be expressed as a catamorphism, then the it..ti construct provides a very natural implementation. Examples are given to show typical uses of the new construct.