During the last decade object-oriented programming has grown from marginal
influence into widespread acceptance. During the same period, progress in h
ardware and networking has changed the computing environment from sequentia
l to parallel. Multi-processor workstations and clusters are now quite comm
on.
Unnumbered proposals have been made to combine both developments. Always: t
he prime objective has been to provide the advantages of object-oriented so
ftware design at the increased power of parallel machines. However, combini
ng both concepts has proven to be notoriously difficult. Depending on the a
pproach, often key characteristics of either the object-oriented paradigm o
r key performance factors of parallelism are sacrificed, resulting in unsat
isfactory languages.
This survey first recapitulates well-known characteristics of both the obje
ct-oriented paradigm and parallel programming, and then marks out the desig
n space of possible combinations by identifying various interdependencies o
f key concepts. The design space is then filled with data points: for 111 p
roposed languages we provide brief characteristics and feature tables. Feat
ure tables, the comprehensive bibliography, and web-addresses might help in
identifying open questions and preventing re-inventions. Copyright (C) 200
0 John Wiley & Suns, Ltd.