A Software Environment for Concurrent Coordinated Programming

   page       BibTeX_logo.png   
Anne-Alexandra Holzbacher
Paolo Ciancarini, Chris Hankin (eds.)
Coordination Languages and Models, pages 249-266
LNCS 1061

In this paper, we present ConCoord: a software environment for Concurrent Coordinated programming. ConCoord contributes to concurrent programming in three ways. First, it separates programming into computation and coordination in order to reduce programming complexity. A ConCoord program is a dynamic collection of processes for either computation or coordination. Computation processes encapsulate conventional sequential computations. Coordination processes manage concurrency and only this. They handle dynamic evolution of the program structure depending on conditions on the program structure and execution state of processes. Second, ConCoord is targeted at networks of sequential and parallel machines. These networks support efficiently the exploitation of a diversity of concurrency grains on their different architectures. In order to take advantage of this feature, ConCoord provides linguistic support for heterogeneous concurrency exploitation. Third, reuse has being a primary concern in ConCoord's design. In our environment, sequential algorithms can be reused within computation processes. Concurrency management of concurrent algorithms can be reused within coordination processes. Both computation and coordination processes can be specified as parameterised reusable software components.