Eiffel Linda: an object-oriented Linda dialect

Eiffel is a statically-typed object-oriented language which supports good software engineering techniques but provides no support for concurrency; Linda is a parallel programming model which provides a uniform semantics for coordination and communication among multiple processes. This paper describes an Eiffel Linda which injects the Linda operations into the Eiffel language. The resulting synthesis extends both Eiffel and Linda; the implications of the synergy between the two systems are examined, and suggestions for future work are proposed.We begin with an examination of the Eiffel execution model, with particular reference to its emphasis on the correct construction of software systems. We briefly describe the Linda language, and compare it to other parallelism models. The unified Eiffel Linda language is then presented, with discussion of the semantic issues which were considered in the course of its evolution, and details of the interesting features of our particular implementation. Comparisons to past work in Linda and in object-oriented concurrency are offered. In conclusion, we reflect on the significance of Eiffel Linda, and consider its relevance to future work in object-based concurrency.

[1]  Nicholas Carriero,et al.  How to write parallel programs - a first course , 1990 .

[2]  Jr. Nicholas John Carriero Implementation of tuple space machines , 1987 .

[3]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[4]  Bertrand Meyer,et al.  From Structured Programming to Object-Oriented Design: The Road to Eiffel , 1989, Struct. Program..

[5]  Nicholas Carriero,et al.  How to write parallel programs: a guide to the perplexed , 1989, CSUR.

[6]  C. Tomlinson,et al.  Rosette: An object-oriented concurrent systems architecture , 1988, OOPSLA/ECOOP '88.

[7]  Satoshi Matsuoka,et al.  Using tuple space communication in distributed object-oriented languages , 1988, OOPSLA '88.

[8]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[9]  D. Caromel A general model for concurrent and distributed object-oriented programming , 1988, OOPSLA/ECOOP '88.

[10]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[11]  Won Kim,et al.  Integrating an object-oriented programming system with a database system , 1988, OOPSLA '88.

[12]  P. A. Buhr,et al.  Adding concurrency to a statically type-safe object-oriented programming language , 1988, OOPSLA/ECOOP '88.

[13]  P ColwellRobert,et al.  A VLIW architecture for a trace scheduling compiler , 1987 .

[14]  Jerrold Sol Leichter Shared tuple memories, shared memories, buses and lan's--linda implementations across the spectrum of connectivity , 1989 .

[15]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[16]  Richard P. Gabriel,et al.  Qlisp: Experience and New Directions , 1988, PPOPP/PPEALS.

[17]  Robert P. Colwell,et al.  A VLIW architecture for a trace scheduling compiler , 1987, ASPLOS.

[18]  Nicholas Carriero,et al.  Coordination languages and their significance , 1992, CACM.

[19]  Peter Wegner,et al.  Dimensions of object-based language design , 1987, OOPSLA '87.

[20]  Henri E. Bal,et al.  Orca: a language for distributed programming , 1990, SIGP.

[21]  David Gelernter Getting the job done. , 1988, Nursing standard (Royal College of Nursing (Great Britain) : 1987).

[22]  Ralph E. Johnson,et al.  The heart of object-oriented concurrent programming , 1988, OOPSLA/ECOOP '88.

[23]  Nicholas Carriero,et al.  Matching Language and Hardware for Parallel Computation in the Linda Machine , 1988, IEEE Trans. Computers.

[24]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.