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. 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"