language: en

A Concurrency Mechanism For Sequential Eiffel

Murat Karaorman John Bruno
Department of Computer Science University of California
Santa Barbara, CA 93106
Email: murat@cs.ucsb.edu, bruno@cs.ucsb.edu

Abstract This paper describes a set of classes designed to facilitate concurrent programming using the sequential object-oriented language EIFFEL. The design and implementation presented here is the application of a more general Concurrency Model we have built to introduce concurrency to sequential OOPLs. The model views concurrency as a well-defined, inheritable property of objects specified in the class CONCURRENCY, and provides a methodology using inheritance to write concurrent object-orient applications. Key ideas involved in the methodology are: active objects, extensibility of protocols, synchronization programming, data-driven synchronization with asynchronous message passing. The novel feature of our work is in its describing concurrency in the context of sequential programming and using a object-oriented design methodology to describe and implement it. We illustrate the usefulness and expressiveness of the concurrency mechanism by presenting examples and analyzing them. The ability to express powerful synchronization constraints as reusable software components emerges as a strong point of our implementation.

[This research has been supported by the Lawrence Liver-more National Labs; grant no: ISCR/LLNL 89-22,90-22]

1 INTRODUCTION