Science of Computer Programming vol:76 issue:8 pages:681-710
Coordination in Reo emerges from the composition of the behavioural constraints of primitives, such as channels, in a component connector. Understanding and implementing Reo, however, has been challenging due to interaction of the channel metaphor, which is an inherently local notion, and the non-local nature of the constraints imposed by composition. In this paper, the channel metaphor takes a back seat. We focus on the behavioural constraints imposed by the composition of primitives and phrase the semantics of Reo as a constraint satisfaction problem. Not only does this provide a clear description of the behaviour of Reo connectors in terms of synchronisation and data flow constraints, it also paves the way for new implementation techniques based on constraint satisfaction. We also demonstrate that this approach is more efficient than existing techniques based on connector colouring.