Results 1 
7 of
7
Elements of a Relational Theory of Datatypes
 Formal Program Development, volume 755 of Lecture Notes in Computer Science
, 1993
"... The "Boom hierarchy" is a hierarchy of types that begins at the level of trees and includes lists, bags and sets. This hierarchy forms the basis for the calculus of total functions developed by Bird and Meertens, and which has become known as the "BirdMeertens formalism". This paper describes a hie ..."
Abstract

Cited by 35 (0 self)
 Add to MetaCart
The "Boom hierarchy" is a hierarchy of types that begins at the level of trees and includes lists, bags and sets. This hierarchy forms the basis for the calculus of total functions developed by Bird and Meertens, and which has become known as the "BirdMeertens formalism". This paper describes a hierarchy of types that logically precedes the Boom hierarchy. We show how the basic operators of the BirdMeertens formalism (map, reduce and filter) can be introduced in a logical sequence by beginning with a very simple structure and successively refining that structure. The context of this work is a relational theory of datatypes, rather than a calculus of total functions. Elements of the theory necessary to the later discussion are summarised at the beginning of the paper. 1 Introduction This paper reports on an experiment into the design of a programming algebra. The algebra is an algebra of datatypes oriented towards the calculation of polymorphic functions and relations. Its design d...
An Exploration of the BirdMeertens Formalism
 In STOP Summer School on Constructive Algorithmics, Abeland
, 1989
"... Two formalisms that have been used extensively in the last few years for the calculation of programs are the Eindhoven quantifier 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 th ..."
Abstract

Cited by 32 (3 self)
 Add to MetaCart
Two formalisms that have been used extensively in the last few years for the calculation of programs are the Eindhoven quantifier 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 BirdMeertens formalism by expressing and deriving within it the basic rules applicable in the Eindhoven quantifier notation. 1 Calculation was an endless delight to Moorish scholars. They loved problems, they enjoyed finding ingenious methods to solve them, and sometimes they turned their methods into mechanical devices. (J. Bronowski, The Ascent of Man. Book Club Associates: London (1977).) 1 Introduction Our ability to calculate  whether it be sums, products, differentials, integrals, or whatever  would be woefull...
Calculating A Path Algorithm
 Science of Computer Programming
, 1992
"... . A calculational derivation is given of an abstract path algorithm, one instance of the algorithm being Dijkstra's shortestpath algorithm, another being breadthfirst/depthfirst search of a directed graph. The basis for the derivation is the algebra of regular languages. 1 Problem Statement ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
. A calculational derivation is given of an abstract path algorithm, one instance of the algorithm being Dijkstra's shortestpath algorithm, another being breadthfirst/depthfirst search of a directed graph. The basis for the derivation is the algebra of regular languages. 1 Problem Statement Given is a (nonempty) set N and a j N j \Theta j N j matrix A, the rows and columns of which are indexed by elements of N . It is assumed that the matrix elements are drawn from a regular algebra 1 (S; +; \Delta; ; 0; 1) having the two additional properties that the ordering induced 2 by + is a total ordering (1) on the elements of S; and 1 is the largest element in the ordering: (2) In addition to N and A, one is given a 1\Theta j N j matrix b. Hereafter 1\Theta j N j matrices will be called "vectors", 1 \Theta 1 matrices will be called "elements" and j N j \Theta j N j matrices will be called "matrices". The problem is to derive an algorithm to compute the vector b \Delta A wher...
(Relational) Programming Laws in the Boom Hierarchy of Types
 Mathematics of Program Construction
, 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 relational theory of datatypes. The two methods to which we refer are the socalled "BirdMeertens ..."
Abstract

Cited by 9 (1 self)
 Add to MetaCart
. 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 relational theory of datatypes. The two methods to which we refer are the socalled "BirdMeertens formalism" (see [22]) and the "DijkstraFeijen calculus" (see [15]). The current paper forms an abridged, though representative, version of a complete account of the algebraic properties of the Boom hierarchy of types [19, 18]. Missing is an account of extensionality and the socalled crossproduct. 1 Introduction The "BirdMeertens formalism" (to be more precise, our own conception of it) is a calculus of total functions based on a small number of primitives and a hierarchy of types including trees and lists. The theory was set out in an inspiring paper by Meertens [22] and has been further refined and applied in a number of papers by Bird and Meertens [8, 9, 11, 12, 13]. Its beauty deriv...
Making Formality Work For Us
 EATCS Bulletin
, 1989
"... Formal reasoning is notoriously long and arduous; in order to use it to reason effectively in the construction of programs it is, therefore, paramount that we design our notations to be both clear and economical. Taking examples from AI, from imperative programming, from the use of the BirdMeer ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
Formal reasoning is notoriously long and arduous; in order to use it to reason effectively in the construction of programs it is, therefore, paramount that we design our notations to be both clear and economical. Taking examples from AI, from imperative programming, from the use of the BirdMeertens formalism and from category theory we demonstrate how the right choice of what to denote and how it is denoted can make significant improvements to formal calculations. Brief mention is also made of the connection between economical notation and properties of type. 1 2 Foreword Earlier this year I was an invited speaker at the 5th British Computer Society Theoretical Computer Science Colloquium held at Royal Holloway and Bedford New College, London. Before you is the text of my lecture, almost but not quite as given at the conference. (Perhaps the best way to describe the present paper is as the lecture that I should have given.) The publication of the text of the lecture will, ...
Inductive Datatypes with Laws and Subtyping – A Relational Model
 Faculty of Mathematics and Computing
"... ..."
Formal Feasibility Conditions for Earliest Deadline First Scheduling
, 1994
"... A practical condition is presented for feasibility of dynamic scheduling without preemption in uniprocessor realtime systems. For a task b, let r:b, d:b, and e:b be the release time, the deadline, and the maximal execution time, respectively. Let ub be an upper bound for the execution times of all ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
A practical condition is presented for feasibility of dynamic scheduling without preemption in uniprocessor realtime systems. For a task b, let r:b, d:b, and e:b be the release time, the deadline, and the maximal execution time, respectively. Let ub be an upper bound for the execution times of all tasks under consideration. For a set of tasks B, and for numbers R and D, let w(B;R;D) be the sum åe:b where b ranges over the elements b 2 B with R r:b and d:b D. Task set B is said to have load fraction u if w(B;R;D) u (D \Gamma R \Gamma ub) holds for all R and D with w(B;R;D) ? 0. It is formally proved that, if B is a task set with load fraction 1, the earliest deadline first schedule without preemption is such that all tasks meet their deadlines. It is shown that the load fractions of practical task sets can often be estimated. 1 Introduction The general scheduling problem is to determine for a given set of tasks an order according to which the tasks are to be executed such that ...