Results 1 
7 of
7
Categories, Allegories and Circuit Design
 In Ninth Annual IEEE Symposium on Logic in Computer Science
, 1994
"... Relational languages such as Ruby are used to derive hardware circuits from abstract specifications of their behaviour. Much reasoning is done informally in Ruby using pictorial representations of relational terms. We formalise this use of pictures in circuit design. We show that pictures naturally ..."
Abstract

Cited by 23 (1 self)
 Add to MetaCart
Relational languages such as Ruby are used to derive hardware circuits from abstract specifications of their behaviour. Much reasoning is done informally in Ruby using pictorial representations of relational terms. We formalise this use of pictures in circuit design. We show that pictures naturally form a unitary pretabular allegory. Homomorphisms of pictures correspond to adding new wires or circuit components. Two pictures are mutually homomorphic if and only if they represent equal allegorical terms. We prove soundness and completeness results which guarantee that deriving circuits using pictures does not lead to errors. We illustrate the use of pictures by deriving the ripple adder implementation from a high level, behavioural specification. 1: Introduction Hardware circuit design involves translating abstract specifications of programs into efficient circuits which compute those programs. Pictures are widely used as an informal means of translating a specification into an imple...
Between Functions and Relations in Calculating Programs
, 1992
"... This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
(Show Context)
This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made using Ruby. The first is that the notion of a program being an implementation of a specification has never been made precise. The second is to do with types. Fundamental to the use of type information in deriving programs is the idea of having types as special kinds of programs. In Ruby, types are partial equivalence relations (pers). Unfortunately, manipulating some formulae involving types has proved difficult within Ruby. In particular, the preconditions of the `induction' laws that are much used within program derivation often work out to be assertions about types; such assertions have typically been verified either by informal arguments or by using predicate calculus, rather than by ap...
Exploiting symmetry on parallel architectures
, 1995
"... This thesis describes techniques for the design of parallel programs that solvewellstructured problems with inherent symmetry. Part I demonstrates the reduction of such problems to generalized matrix multiplication by a groupequivariant matrix. Fast techniques for this multiplication are described ..."
Abstract

Cited by 10 (1 self)
 Add to MetaCart
This thesis describes techniques for the design of parallel programs that solvewellstructured problems with inherent symmetry. Part I demonstrates the reduction of such problems to generalized matrix multiplication by a groupequivariant matrix. Fast techniques for this multiplication are described, including factorization, orbit decomposition, and Fourier transforms over nite groups. Our algorithms entail interaction between two symmetry groups: one arising at the software level from the problem's symmetry and the other arising at the hardware level from the processors' communication network. Part II illustrates the applicability of our symmetryexploitation techniques by presenting a series of case studies of the design and implementation of parallel programs. First, a parallel program that solves chess endgames by factorization of an associated dihedral groupequivariant matrix is described. This code runs faster than previous serial programs, and discovered a number of results. Second, parallel algorithms for Fourier transforms for nite groups are developed, and preliminary parallel implementations for group transforms of dihedral and of symmetric groups are described. Applications in learning, vision, pattern recognition, and statistics are proposed. Third, parallel implementations solving several computational science problems are described, including the direct nbody problem, convolutions arising from molecular biology, and some communication primitives such as broadcast and reduce. Some of our implementations ran orders of magnitude faster than previous techniques, and were used in the investigation of various physical phenomena.
Back to Basics: Deriving Representations Changers Without Relations
, 1994
"... A representation changer is a function that can be specified in a particular way in terms of two other functions. Examples of representation changers include binary addition and multiplication, base conversion, and compilers. There has been much recent work in using a relational language, namely ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
A representation changer is a function that can be specified in a particular way in terms of two other functions. Examples of representation changers include binary addition and multiplication, base conversion, and compilers. There has been much recent work in using a relational language, namely Jones and Sheerans' Ruby, to derive representation changers from their specifications using equational reasoning. In this paper
Algorithms from Relational Specification
, 1996
"... Introduction The purpose of a specification is to state a problem as clearly as possible. In many cases, the most direct and intuitive way to specify a problem is by writing down a logical predicate like in the phonebook example in Chapt. ??[chapt:background] that describes its possible solutions. ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Introduction The purpose of a specification is to state a problem as clearly as possible. In many cases, the most direct and intuitive way to specify a problem is by writing down a logical predicate like in the phonebook example in Chapt. ??[chapt:background] that describes its possible solutions. We employ the calculus of binary relations for developing efficient algorithms from logical problem specifications, using the procedure sketched below. The first task is to obtain a relational specification from the original problem description. There are a number of correspondences between logical and relationalgebraic operations, which in many practical examples yield the desired relational specification easily. In more complex cases one can use relation algebra extended with direct products and their associated projections (see Sect. 2.5[sect:hetrel prod]). Relational specifications are very compact, and if the carrier sets are
Reductivity Arguments and Program Construction
"... Dit proefschrift is goedgekeurd door de promotoren: prof.dr. R. C. Backhouse en prof.dr. E. W. DijkstraAcknowledgements Many people have contributed in making the research reported in this thesis possible and enjoyable. I would like to mention: ffl My Ph.D. supervisor Roland Backhouse, for accepting ..."
Abstract
 Add to MetaCart
(Show Context)
Dit proefschrift is goedgekeurd door de promotoren: prof.dr. R. C. Backhouse en prof.dr. E. W. DijkstraAcknowledgements Many people have contributed in making the research reported in this thesis possible and enjoyable. I would like to mention: ffl My Ph.D. supervisor Roland Backhouse, for accepting me as a Ph.D. student, showing me his good taste, teaching me that it is always possible to make things better and helping me in doing so. ffl My fellow Ph.D. students Paul Hoogendijk and Ed Voermans, for their enthusiasm and interest. ffl The other members and former members of the Eindhoven Mathematics of Program