Results 1  10
of
16
A Cost Analysis for a Higherorder Parallel Programming Model
, 1996
"... Programming parallel computers remains a difficult task. An ideal programming environment should enable the user to concentrate on the problem solving activity at a convenient level of abstraction, while managing the intricate lowlevel details without sacrificing performance. This thesis investiga ..."
Abstract

Cited by 17 (1 self)
 Add to MetaCart
Programming parallel computers remains a difficult task. An ideal programming environment should enable the user to concentrate on the problem solving activity at a convenient level of abstraction, while managing the intricate lowlevel details without sacrificing performance. This thesis investigates a model of parallel programming based on the BirdMeertens Formalism (BMF). This is a set of higherorder functions, many of which are implicitly parallel. Programs are expressed in terms of functions borrowed from BMF. A parallel implementation is defined for each of these functions for a particular topology, and the associated execution costs are derived. The topologies which have been considered include the hypercube, 2D torus, tree and the linear array. An analyser estimates the costs associated with different implementations of a given program and selects a costeffective one for a given topology. All the analysis is performed at compiletime which has the advantage of reducing run...
Linear Behaviour Of Term Graph Rewriting Programs
 Proc. ACM SAC `95
"... The generalised term graph rewriting computational model is exploited to implement concurrent languages based on Girard's Linear Logic (LL). In particular a fragment of LL is identified which is able to serve as a "process calculus" and on which the design of a number of languages can ..."
Abstract

Cited by 12 (12 self)
 Add to MetaCart
(Show Context)
The generalised term graph rewriting computational model is exploited to implement concurrent languages based on Girard's Linear Logic (LL). In particular a fragment of LL is identified which is able to serve as a "process calculus" and on which the design of a number of languages can be based. It is then shown how this fragment can be mapped onto equivalent sets of graph rewriting rules that both preserve the functionality of the LL connectives and also exploit the properties of linearity for efficient implementation on a distributed architecture. Notions such as channels, production and consumption of messages, and NtoN communication between agents, are interpreted in the world of (term) graph rewriting. This work serves two purposes: i) to extend the notion of Term Graph Rewriting as a generalised computational model for the case of linear concurrent languages, and ii) to act as an initial investigation towards a fully linear term graph rewriting model of computation able to be im...
The Automated Transformation of Abstract Specifications of Numerical Algorithms into Efficient Array Processor Implementations
 Science of Computer Programming
, 1997
"... We present a set of program transformations which are applied automatically to convert abstract functional specifications of numerical algorithms into efficient implementations tailored to the AMT DAP array processor. The transformations are based upon a formal algebra of a functional array form, wh ..."
Abstract

Cited by 12 (5 self)
 Add to MetaCart
(Show Context)
We present a set of program transformations which are applied automatically to convert abstract functional specifications of numerical algorithms into efficient implementations tailored to the AMT DAP array processor. The transformations are based upon a formal algebra of a functional array form, which provides a functional model of the array operations supported by the DAP programming language. The transformations are shown to be complete. We present specifications and derivations of two example algorithms: an algorithm for computing eigensystems and an algorithm for solving systems of linear equations. For the former, we compare the execution performance of the implementation derived by transformation with the performance of an independent, manually constructed implementation; the efficiency of the derived implementation matches that of the manually constructed implementation.
A Highly Parallel Model for ObjectOriented Concurrent Constraint Programming
 Proc. IEEE ICA PP95
, 1995
"... Two of the currently most promising programming paradigms, namely ObjectOriented Programming and Concurrent Constraint Programming are combined into a single, highly parallel computational model based on Term Graph Rewriting Systems. In particular, we show how multiheaded Term Graph rewrite rules ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
(Show Context)
Two of the currently most promising programming paradigms, namely ObjectOriented Programming and Concurrent Constraint Programming are combined into a single, highly parallel computational model based on Term Graph Rewriting Systems. In particular, we show how multiheaded Term Graph rewrite rules provide a powerful tool able to manipulate Term Graphs which themselves represent in a homogeneous way objects, concurrently executing agents and constraints. Due to the inherent fine grain parallelism of Term Graph Rewriting the proposed model is highly parallel with all activities (object communication, agent execution and constraint solving) executing concurrently. 1. Introduction The generalised computational model of Term Graph Rewriting Systems (TGRS) ([5]) has been used extensively as an implementation vehicle for a number of, often divergent, programming paradigms ranging from the traditional functional programming ones ([12,15]) to the (concurrent) logic programming ones ([3,10,18])...
ObjectOriented Term Graph Rewriting
 International Journal of Computer Systems Science and Engineering, CRL Publs., (in print
, 1997
"... The relationship between the generalised computational model of Term Graph Rewriting Systems (TGRS) and ObjectOriented Programming (OOP) is explored and exploited by extending the TGRS model with records where access to parameters is done by naming rather than position. Records are then used as the ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
(Show Context)
The relationship between the generalised computational model of Term Graph Rewriting Systems (TGRS) and ObjectOriented Programming (OOP) is explored and exploited by extending the TGRS model with records where access to parameters is done by naming rather than position. Records are then used as the basis for expressing objectoriented techniques such as object encapsulation and (various forms of) inheritance. The effect is that TGRS with records can now be used as an implementation model for a variety of (concurrent) objectoriented (functional, logic or otherwise) languages but also as a common formalism for comparing various related techniques (such as different forms of inheritance or approaches for providing solutions to problems caused by the combination of concurrency and interaction between objects). Keywords: ObjectOriented Programming; Concurency and Parallelism; Programming Language Extensions; Rewriting Systems. ObjectOriented Term Graph Rewriting George A. Papadopoulos...
Concurrent ObjectOriented Programming Using Term Graph Rewriting Techniques
, 1996
"... this paper we use TGRS and we exploit the high degree of fine grain parallelism available in the model in expressing a variety of concurrent objectoriented programming techniques. Being our framework language independent, it can serve as a basis for designing new concurrent Concurrent OOP using TG ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
this paper we use TGRS and we exploit the high degree of fine grain parallelism available in the model in expressing a variety of concurrent objectoriented programming techniques. Being our framework language independent, it can serve as a basis for designing new concurrent Concurrent OOP using TGR techniques: George A Papadopoulos 2 objectoriented languages, implementing existing ones or act as a point of reference in comparing different approaches proposed by various languages to modelling certain OOP techniques such as delegation, inheritance, etc. but also to solving any associated problems encountered
A Method of Verification in Design: an operating system case study
"... This paper reports a study of verification in the highlevel design phase of operating system development in which both rigorous and formal verification are used, where the rigorous argument is used to determine a manageable formal proof to be carried out. A 2sorted first order temporal language is ..."
Abstract
 Add to MetaCart
This paper reports a study of verification in the highlevel design phase of operating system development in which both rigorous and formal verification are used, where the rigorous argument is used to determine a manageable formal proof to be carried out. A 2sorted first order temporal language is used to express several possible highlevel designs and the required properties of an operating system store manager. The case of large system limits is reduced to a case of small system limits by use of a rigorous argument. Corresponding propositional temporal logic (PTL) formulae are then verified using a PTL theorem prover.
An Algebra for Deriving Efficient Implementations for an Array Processor Parallel Computer from Functional Specifications
, 1995
"... We present a set of program transformations which are applied automatically to convert an abstract functional specification of numerical algorithms into efficient implementations tailored to the AMT DAP array processor. The transformations are based upon a formal algebra of a functional array form, ..."
Abstract
 Add to MetaCart
We present a set of program transformations which are applied automatically to convert an abstract functional specification of numerical algorithms into efficient implementations tailored to the AMT DAP array processor. The transformations are based upon a formal algebra of a functional array form, which provides a functional model of the array operations supported by the DAP programming language. The transformations are shown to be complete. We present specifications and derivations of two example algorithms: an algorithm for computing eigensystems and an algorithm for solving systems of linear equations. For the former, we compare the execution performance of the implementation derived by transformation with the performance of an independent, manually constructed implementation; the efficiency of the derived implementation matches that of the manually constructed implementation.
A Layered Implementation of the Parallel Functional Language Eden
, 2002
"... Highlevel control over parallel process behaviour simplies the development of parallel software substantially by freeing the programmer from lowlevel process management details. The latter are handled by a sophisticated runtime system which controls program execution. In this paper we look behind ..."
Abstract
 Add to MetaCart
Highlevel control over parallel process behaviour simplies the development of parallel software substantially by freeing the programmer from lowlevel process management details. The latter are handled by a sophisticated runtime system which controls program execution. In this paper we look behind the scenes and show how the enormous gap between highlevel parallel language constructs and their lowlevel implementation has been bridged in the implementation of the parallel functional language Eden. The main idea has been to concentrate the process control in a functional module and to restrict the extensions of the lowlevel runtime system to a few selected primitive operations.