Results 1 -
4 of
4
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 16 (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
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 solvewell-structured problems with inherent symmetry. Part I demonstrates the reduction of such problems to generalized matrix multiplication by a group-equivariant matrix. Fast techniques for this multiplication are described ..."
Abstract
-
Cited by 8 (1 self)
- Add to MetaCart
This thesis describes techniques for the design of parallel programs that solvewell-structured problems with inherent symmetry. Part I demonstrates the reduction of such problems to generalized matrix multiplication by a group-equivariant 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 symmetry-exploitation 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 group-equivariant 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 n-body 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.
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 relation-algebraic 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

