BIB-VERSION:: CS-TR-v2.0 ID:: ORSTCS//1992R-ORSTCS-91-80-03 ENTRY:: August 24, 1994 ORGANIZATION:: Oregon State University, Computer Science TITLE:: Control Abstraction in Parallel Programming Languages TYPE:: Technical Report AUTHOR:: Crowl, Lawrence A. CONTACT:: crowl@cs.orst.edu AUTHOR:: LeBlanc, Thomas J. CONTACT:: leblanc@cs.rochester.edu DATE:: February 1992 PAGES:: 15 COPYRIGHT:: Copyright for the report (c) 1992, by L. A. Crowl and T. J. LeBlanc. All rights reserved. Permission is granted for an academic use of the report. RETRIEVAL:: http://www.cs.orst.edu/techpub/reports/1992/1992R-ORSTCS-91-80-03/ RETRIEVAL:: ftp://ftp.cs.orst.edu/techpub/reports/1992/1992R-ORSTCS-91-80-03/fulltext.ps ABSTRACT:: Control abstraction is the process by which programmers define new control constructs, specifying a statement ordering separately from an implementation of that ordering. We argue that control abstraction can and should play a central role in parallel programming. Control abstraction can be used to build new control constructs for the expression of parallelism. A control construct can have several implementations, representing the varying degrees of parallelism to be exploited on different architectures. Control abstraction also reduces the need for explicit synchronization, since it admits a precise specification of control flow. Using several examples, we illustrate these benefits of control abstraction. We also show that we can efficiently implement a parallel programming language based on control abstraction. We conclude that the enormous benefits and reasonable costs of control abstraction argue for its inclusion in explicitly parallel programming languages. END:: ORSTCS//1992R-ORSTCS-91-80-03