# An Exploration of the Bird-Meertens Formalism

@inproceedings{Backhouse1989AnEO, title={An Exploration of the Bird-Meertens Formalism}, author={Roland Carl Backhouse}, year={1989} }

Two formalisms that have been used extensively in the last few years for the calculation of programs are the Eindhoven quantiier notation and the formalism developed by Bird and Meertens. Although the former has always been applied with ultimate goal the derivation of imperative programs and the latter with ultimate goal the derivation of functional programs there is a remarkable similarity in the formal games that are played. This paper explores the Bird-Meertens formalism by expressing and… Expand

No Paper Link Available

#### Topics from this paper

#### 59 Citations

The School of Squiggol - A History of the Bird-Meertens Formalism

- Computer Science
- FM Workshops
- 2019

This paper explores the historical ebb and flow of the development of the Bird–Meertens Formalism: sometimes favouring notational exploration in the quest for conciseness and precision, and sometimes reverting to simpler and more rigid notational conventions in the interests of accessibility. Expand

Automated Parallelisation of code written in the Bird-Meertens Formalism

- Computer Science
- 2003

A partial implementation of a paralleliser for Bird-Meertens Formalism programs and the issues encountered while developing it are described. Expand

Making Formality Work For Us

- Mathematics
- 1989

Formal reasoning is notoriously long and arduous; in order to use it to reason eeectively in the construction of programs it is, therefore, paramount that we design our notations to be both clear and… Expand

Parallelization in calculational forms

- Computer Science
- POPL '98
- 1998

This paper makes the first attempt to construct a calculational algorithm for parallelization, deriving associative operators from data type definition and making full use of existing fusion and tupling calculations. Expand

Making Recursions Manipulable by Constructing Medio-types

- 1995

A catamorphism, generic version of our familiar foldr on lists, is quite a simple recursive scheme associated with data type de nitions. It plays a very important role in program calculation, since… Expand

Comprehending Ringads - For Phil Wadler, on the Occasion of his 60th Birthday

- Philosophy, Computer Science
- A List of Successes That Can Change the World
- 2016

The ringad structure alone does not provide a good explanation or an efficient implementation of relational joins; but by allowing heterogeneous comprehensions, involving both bag and indexed table ringads, it is shown how to accommodate these too. Expand

(Relational) Programming Laws in the Boom Hierarchy of Types

- Mathematics, Computer Science
- MPC
- 1992

In this paper we demonstrate that the basic rules and calculational techniques used in two extensively documented program derivation methods can be expressed, and, indeed, can be generalised within a… Expand

Program Optimizations and Transformations in Calculation Form

- Computer Science
- GTTSE
- 2005

This tutorial will explain the basic idea of program calculation, demonstrate that many program optimizations and transformations, such as the optimization technique known as loop fusion and the parallelization transformation, can be concisely reformalized in calculational form, and show that program transformation in calculator forms is of higher modularity and more suitable for efficient implementation. Expand

Expression Refinement: Deriving Bresenham's Algorithm

- Computer Science
- Functional Programming
- 1994

This paper illustrates a method of transforming an initial specification expression, which is not necessarily algorithmic, into an efficient functional implementation using a refinement calculus for… Expand

Using Underspecification in the Derivation of some Optimal Partition Algorithms

- 1990

Indeterminacy is inherent in the specification of optimal partition (and many more) algorithms, even though the algorithms themselves may be fully determinate. Indeterminacy is a notoriously hard… Expand

#### References

SHOWING 1-10 OF 23 REFERENCES

Algorithmics : towards programming as a mathematical activity

- Computer Science
- 1986

The essence of the method is to start with an obviously correct—but possibly hopelessly inefficient—algorithm, and to improve by successively applying correctness-preserving transformations, akin to those used in mathematics. Expand

Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs

- Computer Science
- CACM
- 1978

A new class of computing systems uses the functional programming style both in its programming language and in its state transition rules; these systems have semantics loosely coupled to states—only one state transition occurs per major computation. Expand

Formal Derivation of a Pattern Matching Algorithm

- Computer Science
- Sci. Comput. Program.
- 1989

This paper is devoted to the synthesis of a functional version of the Knuth-MorrisPratt algorithm for pattern matching, and the derivation makes use of the calculus of lists described by Bird. Expand

Constructive mathematics and computer programming

- Computer Science
- 1985

This chapter discusses that relating constructive mathematics to computer programming seems to be beneficial, and that it may well be possible to turn what is now regarded as a high level programming language into machine code by the invention of new hardware. Expand

A Theory of Type Polymorphism in Programming

- Computer Science
- J. Comput. Syst. Sci.
- 1978

This work presents a formal type discipline for polymorphic procedures in the context of a simple programming language, and a compile time type-checking algorithm w which enforces the discipline. Expand

Transformational Programming and the Paragraph Problem

- Computer Science
- Sci. Comput. Program.
- 1986

A complete derivation, based on transformational programming, of two linear-time algorithms for the problem of breaking paragraphs into lines is presented, reflecting different assumptions about the algebraic properties of waste functions. Expand

A programming language

- Computer Science
- AIEE-IRE '62 (Spring)
- 1962

The paper describes a succinct problem-oriented programming language that relies heavily on a systematic extension of a small set of basic operations to vectors, matrices, and trees, and on a family of flexible selection operations controlled by logical vectors. Expand

An introduction to the theory of lists

- Computer Science
- 1987

In these lectures a notation and a calculus for specifying and manipulating computable functions over lists are introduced, used to derive efficient solutions for a number of problems, including problems in text processing. Expand

Regular Algebra Applied to Path-finding Problems

- Mathematics
- 1975

In an earlier paper, one of the authors presented an algebra for formulating and solving extremal path problems. There are striking similarities between that algebra and the algebra of regular… Expand

The promotion and accumulation strategies in transformational programming

- Computer Science
- TOPL
- 1984

Illustration de ces strategies en devinant des algorithmes pour 2 problemes non-triviaux: 1) determiner si un digraphe donne est acyclique, and 2) construire la plus longue sous sequence d'une sequence donne de sommets. Expand