Abstract
Reo is a language for programming of coordination protocols among concurrent processes. Central to Reo are connectors: programmable synchronization/communication mediums used by processes to exchange data. Every connector runs at a clock; at every tick, it enacts an enabled synchronization/communication among processes.
Connectors may prioritize certain synchronizations/communications over others. “Passive” connectors use their priorities only at clock ticks, to decide which enabled synchronization/communication to enact. “Active” connectors, in contrast, use their priorities also between clock ticks, to influence which synchronizations/communications become enabled; they are said to “propagate their priorities”.
This paper addresses the problem of formalizing propagation of priorities in Reo. Specifically, this paper presents a new instantiation of the connector coloring framework, using eight colors. The resulting formalization of propagation of priorities is evaluated by proving several desirable behavioral equalities.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
For simplicity, and because it is a concern orthogonal to formalizing priorities, I consider only stateless connectors in this paper.
- 3.
- 4.
All propositions in this paper should be interpreted modulo application of an hide operator, to remove internal vertices from the domains of colorings. This is straightforward to explicitly formalize.
References
Arbab, F.: Reo: a channel-based coordination model for component composition. Math. Struct. Comput. Sci. 14(3), 329–366 (2004)
Arbab, F.: Puff, the magic protocol. In: Agha, G., Danvy, O., Meseguer, J. (eds.) Formal Modeling: Actors, Open Systems, Biological Systems. LNCS, vol. 7000, pp. 169–206. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-24933-4_9
Clarke, D., Costa, D., Arbab, F.: Connector colouring I: synchronisation and context dependency. Sci. Comput. Program. 66(3), 205–225 (2007)
Costa, D.: Formal models for component connectors. Ph.D. thesis, Vrije Universiteit (2010)
Clarke, D., Proença, J.: Partial connector colouring. In: Sirjani, M. (ed.) COORDINATION 2012. LNCS, vol. 7274, pp. 59–73. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-30829-1_5
Jongmans, S.-S.T.Q., Krause, C., Arbab, F.: Encoding context-sensitivity in Reo into non-context-sensitive semantic models. In: De Meuter, W., Roman, G.-C. (eds.) COORDINATION 2011. LNCS, vol. 6721, pp. 31–48. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21464-6_3
Jongmans, S.-S.: Formalizing propagation of priorities in Reo, using eight colors (technical report). Technical report (2018). www.arxiv.org
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
A Definitions
A Definitions
Definition 1
(Structure). \(\mathbb {V}\) is the set of all vertices. \(\mathbb {T}\) is the set of all types. The structure of a connector is a tuple \(g = (V, E)\), where \(V \subseteq \mathbb {V}\) and \(E \subseteq (2^{V} \times \mathbb {T}\times 2^{V}) \setminus \{(\emptyset , t, \emptyset )\mid t \in \mathbb {T}\}\). \(\mathbb {G}\) is the set of all structures.
Definition 2
(Structural composition). \(\mathsf {S}, \mathsf {T}: 2^{(2^{\mathbb {V}} \times \mathbb {T}\times 2^{\mathbb {V}})} \rightarrow 2^{\mathbb {V}}\) are the functions defined by the following equations:
\({\bowtie }: \mathbb {G}\times \mathbb {G}\rightarrow \mathbb {G}\) is the partial operation defined by the following equation:
Definition 3
(Behavior). \(\mathbb {C}\) is the set of all colors. A coloring \(\gamma \) over V is a function from V to \(\mathbb {C}\). \(\mathbb {C}\textsc {ol}(V) = V \rightarrow \mathbb {C}\) is the set of all colorings over V. The behavior of a connector \((V, E)\) is a set \(\varGamma \subseteq \mathbb {C}\textsc {ol}(V)\) of colorings.
Definition 4
(Behavioral composition).
\({\bowtie }: (\mathbb {C}\textsc {ol}(V_1) \times \mathbb {C}\textsc {ol}(V_2) \rightharpoonup \mathbb {C}\textsc {ol}(V_1 \cup V_2)) \cup (2^{\mathbb {C}\textsc {ol}(V_1)} \times 2^{\mathbb {C}\textsc {ol}(V_2)} \rightharpoonup 2^{\mathbb {C}\textsc {ol}(V_1 \cup V_2)})\) is the partial function defined by the following equations:
Definition 5
(Denotation). With \(\mathcal {T}: \mathbb {T}\rightarrow (2^{\mathbb {V}} \times 2^{\mathbb {V}}) \rightarrow \bigcup \{2^{\mathbb {C}\textsc {ol}(V)}\mid V \subseteq \mathbb {V}\}\), is the function defined by the following equation:
Theorem 1
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this chapter
Cite this chapter
Jongmans, SS. (2018). Formalizing Propagation of Priorities in Reo, Using Eight Colors. In: de Boer, F., Bonsangue, M., Rutten, J. (eds) It's All About Coordination. Lecture Notes in Computer Science(), vol 10865. Springer, Cham. https://doi.org/10.1007/978-3-319-90089-6_9
Download citation
DOI: https://doi.org/10.1007/978-3-319-90089-6_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-90088-9
Online ISBN: 978-3-319-90089-6
eBook Packages: Computer ScienceComputer Science (R0)