COORDINATION MODELS AND LANGUAGES FOR PARALLEL PROGRAMMING
Paolo Ciancarini, Thilo Kielmann · 2000
Most conventional approaches to parallel programming are based on some basic kinds of synchronized mechanisms and related models of concurrency control: shared variables, message passing, and remote procedure calls. Whereas these paradigms suffice to program parallel applications, they hardly provide abstractions adequate for programmers or language designers. Hence, parallel programming using these models becomes tedious and error–prone. Another issue is that most modern software engineering methods and techniques exploit component-based software architectures usually designed using some object-oriented approaches, which require specific support for concurrency and/or distribution of software components and architectures. Programming languages based on a formally defined coordination model and encompassing a notion of autonomous software components, or agents, are emerging as an effective paradigm for designing parallel systems. In this paper we describe the basic ideas behind some research in the field of coordination models and languages for designing and controlling the software architecture of parallel applications. 1