Gamma is a kernel language in which programs are described in terms of multiset transformations following the chemical reaction metaphor. Previous work has demonstrated its signiicance for the construction of massively parallel programs but also highlighted some limitations. We introduce a higher-order extension of this formalism unifying the program and data syntactic categories. As a consequence active programs can be inserted into mul-tisets. This generalisation has far reaching eeects and we show its relevance from both the formal and the practical point of view. In particular, we present a program deening the chemical abstract machine in higher-order Gamma. We show that more sophisticated control strategies can be expressed within the language and we put them into practice by deriving a scan vector model program suitable for execution on ne-grained parallel machines.
[1]
W. Daniel Hillis,et al.
The connection machine
,
1985
.
[2]
Daniel Le Métayer,et al.
Programming by multiset transformation
,
1993,
CACM.
[3]
Guy E. Blelloch,et al.
Vector Models for Data-Parallel Computing
,
1990
.
[4]
Gérard Berry,et al.
The chemical abstract machine
,
1989,
POPL '90.
[5]
Chris Hankin,et al.
A Parallel Programming Style and Its Algebra of Programs
,
1993,
PARLE.
[6]
Daniel Le Métayer,et al.
The GAMMA Model and Its Discipline of Programming
,
1990,
Sci. Comput. Program..
[7]
Chris Hankin,et al.
A Calculus of Gamma Programs
,
1992,
LCPC.
[8]
K. Mani Chandy,et al.
Parallel program design - a foundation
,
1988
.