Corpus ID: 59725513

An Exploration of the Bird-Meertens Formalism

  title={An Exploration of the Bird-Meertens Formalism},
  author={Roland Carl Backhouse},
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
The School of Squiggol - A History of the Bird-Meertens Formalism
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
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
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 andExpand
Parallelization in calculational forms
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
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, sinceExpand
Comprehending Ringads - For Phil Wadler, on the Occasion of his 60th Birthday
  • J. Gibbons
  • 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
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 aExpand
Program Optimizations and Transformations in Calculation Form
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
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 forExpand
Using Underspecification in the Derivation of some Optimal Partition Algorithms
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 hardExpand


Algorithmics : towards programming as a mathematical activity
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
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
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
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
  • R. Milner
  • 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
  • R. Bird
  • 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
  • K. Iverson
  • 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
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
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 regularExpand
The promotion and accumulation strategies in transformational programming
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