Abstract
Concurrent programming has been viewed as an activity in which a knowledge of the target machine architecture is indispensable to building efficient software. The variety of possible parallel machines has spawned of corresponding variety of concurrent languages for programming them. This has prevented the significant use of parallelism in all but high-end numerical computation because it has not been clear which approach was best. Much of the confusion could be dispensed with if concurrent programming languages that were independent of the particular target architecture could be found. Despite some scepticism about this possibility, several such languages now exist. We survey them and discuss their merits and drawbacks. Architecture independent programming languages can be divided into two broad classes: those that are based on the PRAM model or some extension of it; and those which dispense with a need for explicit storage management and scheduling. Languages in the former class guarantees of performance but require much of the programmer; those in the latter do not provide performance guarantees but are much less demanding to use.

This publication has 0 references indexed in Scilit: