School of Computing Science Technical Report Series(2003)
被引用26|浏览0
摘要
Visual notations for constructing parallel programs have a number of potential advantages over traditional text-based forms, and several visual parallel programming languages have been proposed. This paper explores the design space for such visual languages, and presents a taxonomy that captures the salient underlying characteristics, with exemplification from a number of existing systems. 1. WHY VISUAL PARALLEL PROGRAMMING LANGUAGES? The exploration of visual representations as a replacement for the more normal textual form for constructing programs has been a topic of research for a number of years. In the field of parallel programming, that is the construction of software systems whose constituent parts may be executed in parallel, a number of research efforts have also turned to visual representations as a possible solution to mastering the complexities inherent in this activity. Parallel programming is difficult. For even the most skillful of software developers, the intricacies of developing parallel applications with traditional textual programming methods can be taxing, and error-prone. There are two main reasons why this is so: • Linearity of text-based source code, which does not offer an intuitive representation of the true concurrent flows of control in a parallel application. • Parallelism complexity, where on top of the complexities associated with the problem domain, the developer is forced to shoulder the burden of identifying and controlling the parallelism, sharing data, protecting access to shared resources and ensuring that critical sections of code are properly delimited. The benefits of applying a language with a visual syntax to parallel programming are that both disadvantages associated with textual parallel programming can be overcome. Firstly, since a visual language is not limited to one dimension, unlike a textual language, multiple concurrent flows of control can appear naturally side-byside. Secondly, the semantics of appropriate parts of the syntax of a visual language can be adapted to implicitly resolve a number of parallelism and concurrency control issues. The purpose of this paper is to explore the design space for visual parallel programming languages (VPPLs) and to present a taxonomy that captures the important characteristics that underlie VPPLs. A number of existing VPPLs will be used to exemplify the taxonomy, but the taxonomy will also be of use to future VPPL designers for highlighting possibilities that might not otherwise be considered. 1 Work supported by the EPSRC: PhD studentship (JW); and the HiPPO project.