A Runtime System for Generalized Committed Choice
Xiao Jia, Kenny Qili Zhu, Joxan Jaffar, Roland H. C. Yap · 2012
Traditional nondeterministic programming constructs (Dijkstra guards, CCP [6] and deep guards [10]) do not allow operations which modify the runtime environment without committing to a particular alternative. Generalized committed choice (GCC) allows speculative computations across different alternatives to execute in parallel and isolation. Speculation implicitly forks an environment into separate ones for the alternatives and later one of these environments can be committed to [3]. Speculations from concurrent processes can nevertheless interleave and synchronize against each other. In this paper, we present a concrete architecture, its implementation and optimizations for GCC where the store of the environment is in the form of record spaces. Our prototype implementation allows GCC to be embedded in traditional languages such as C/C++. Preliminary experimental results show that our runtime and GCC extension is a suitable coordination language for programming multiple distributed agents which employ speculation and choices. 1.