• Publications
  • Influence
An array processing language for transputer networks
This paper outlines a language designed to facilitate the solution of problems which involve some array processing, called LATIN, and is currently being implemented on a transputer network. Expand
A Family of Data-Parallel Derivations
A good programmer attempts to minimize architecture-specific detail when writing a sequential implementation of an algorithm, which makes it possible to transport the implementation to other hardware architectures and thus minimize programmer effort. Expand
Notes on implementing a language for transputer networks
Some of the features of Latin are outlined, and the strategy for implementing these features is discussed, to build flexible array processing networks if these networks are programmed in occam. Expand
Latin: A Language for Transputer Networks
The formal specification of abstract data types and their implementation in Fortran 90
It is shown how a formal notation can be used to specify unambigously the functionality of software components and how Fortran 90 directly supports the encapsulation of ADTs thereby enabling the construction of better engineered software than has hitherto been possible using Fortran. Expand
The Automated Derivation of Sparse Implementations of Numerical Algorithms through Program Transformation 1
The automated application of program transformations is used to derive, from abstract functional specifications of numerical mathematical algorithms, highly efficient imperative imple- mentationsExpand
The formal specification of abstract data types and their implementation in Fortran 90: Implementation issues concerning the use of pointers
It is shown that the issue of storage recovery cannot be avoided by the ADT user, and a set of guidelines for implementing ADTs using pointers in Fortran 90 is proposed, which offer a way gracefully to provide disposal operations inFortran 90. Expand
Program slicing: a computer aided programming technique
The authors describe a new technique called program slicing, which is based on the observation that good programs are often constructed by taking a basic framework and enriching it in a number of passes with further information. Expand
Unfolding Recursive Function Definitions Using the Paradoxical Combinator
The use of the paradoxical combinator, Y, to unfold all function definitions, including recursive definitions, is discussed and termination is assured withoutnecessitating aseparatecontrolmechanism. Expand