CRPC-TR93446 Title: Strand and PCN: Two Generations of Compositional Programming Languages Author: Ian Foster Date: May 1994 Keywords: Abstract: Two parallel languages and their associated programming systems are reviewed and evaluated. Both Strand and PCN are designed to facilitate parallel program development by providing an expressive high-level notation; by integrating tools for debugging, performance analysis, etc.; and by providing portability across different parallel computers. Both provide explicit parallel constructs and use single-assignment variables as an abstraction for communication and synchronization. They support a compositional approach to program design, in which programs composed from simpler components inherit the properties of these components. Strand, developed in 1988, is a first- generation system specialized for symbolic applications. PCN, developd in 1990, is a second-generation system that supports both symbolic and numeric computing. Both systems are available on a range of parallel computers, have been widely distributed, and are in use in many applications. This paper summarizes their principal features, describes representative appliations, and evaluates ktheir strengths and weaknesses or parallel programming. Publication History: To be published in Communications of the ACM, 1994.