[comp.specification] New language for parallel computation - SEZ.YALE.

zenith-steven@cs.yale.edu (Steven Ericsson Zenith) (07/12/90)

Copies of the following report can be obtained from Chris Hatchell at Yale.
Email requests to: hatchell-chris@cs.yale.edu

      Programming with Ease: Semiotic definition of the language
			Steven Ericsson Zenith
			      July 1990
	   
		     Yale Technical report TR809
			   Yale University
		    Department of Computer Science
			      New Haven,
			  Connecticut. USA.

This document proposes a new language for parallel computation and
related (distributed) data structures. The language provides a type
associative storage model which can be efficiently implemented on a
range of machine memory architectures.

Ease is a general purpose, high level, imperative programming language
designed to enable the simple expression of concurrent algorithms on
parallel machines. Parallel machine in this context refers not only to
general purpose parallel machines but also to specialised (perhaps
massively parallel) super computers, embedded systems and real time
control systems.

A program is described as a collection of processes which execute
concurrently, constructing and interacting via strictly typed
distributed data structures called "contexts".

Ease is novel in the following regard: a "context" provides a priority
oriented and strictly typed intermediary in which distributed data
structures are constructed and by which processes may interact. Ease
provides simple and symmetric binding operators which allow complex
data structures to be constructed and exchanged efficiently.  Ease
provides constructions for both cooperative and subordinate
concurrency.

Ease is a development and synthesis of several concepts that exist in
the domain of parallel processing. The principal synthesis in Ease is
between the process constructor concepts of CSP and the ideas of
distributed data structures found in the tuple space concepts of
Linda.

Ease is ideally suited as a first level Specification
Language. Indeed, the "semiotic" definition of Ease may
make it better suited to this task than current specification language
proposals.

Unlike the generalised Tuple Space of Linda, Ease contexts are
strictly typed and perform no matching at runtime.

Ease is designed to exploit opportunities for efficiency on a range of
machine architectures, whilst remaining architecture independent.

The main requirements when designing Ease were that it should be an
expressive, well defined language, efficient to implement and
applicable to a wide range of applications in general purpose
computing and embedded systems, and be suited as a target formalism
for automatic generation.

Funding for this work was provided in part by NSF grant CCR--8657615
.                                                                        .
Steven Ericsson Zenith              *            email: zenith@cs.yale.edu
Department of Computer Science      |            voice: (203) 432 1278
Yale University 51 Prospect Street New Haven CT 06520 USA.
     "All can know beauty as beauty only because there is ugliness"