Concurrent programming is conceptually harder to undertake and to understan
d than sequential programming, because a programmer has to manage the coexi
stence and coordination of multiple concurrent activities. To alleviate thi
s task several high-level approaches to concurrent programming have been de
veloped. For some high-level programming approaches, prototyping for facili
tating early evaluation of new ideas is a central goal.
Prototyping is used to explore the essential features of a proposed system
through practical experimentation before its actual implementation to make
the correct design choices early in the process of software development. Ap
proaches to prototyping concurrent applications with very high-level progra
mming systems intend to alleviate the development in different ways. Early
experimentation with alternate design choices or problem decompositions for
concurrent applications is suggested to make concurrent programming easier
.
This paper presents a survey of programming languages and systems for proto
typing concurrent applications to review the state of the art in this area.
The surveyed approaches are classified with respect to the prototyping pro
cess.