A Concurrent Model for Imperative Languages with Improved Atomicity

We propose a new concurrent model for imperative languages where concurrency occurs at a subprogram level. This model introduces a new {\it block sequential} statement of the form $#(G_1,\ldots,G_n)$ where each $G_i$ is a statement. This statement tells the machine to execute $G_1,\ldots,G_n$ sequentially and atomically (\ie, without interleaving). It therefore enhances atomicity and predictability in concurrent programming. We illustrate our idea via $C^{\|}$, an extension of the core concurrent C with the new block sequential statement.

[1]  Keehang Kwon,et al.  Improving Robustness via Disjunctive Statements in Imperative Programming , 2013, IEICE Trans. Inf. Syst..

[2]  Dale Miller,et al.  Logic programming in a fragment of intuitionistic linear logic , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[3]  Gilles Kahn,et al.  Natural Semantics , 1987, STACS.

[4]  Gopalan Nadathur,et al.  Programming with Higher-Order Logic , 2012 .

[5]  Giorgi Japaridze,et al.  Introduction to computability logic , 2003, Ann. Pure Appl. Log..

[6]  Gopalan Nadathur,et al.  Uniform Proofs as a Foundation for Logic Programming , 1991, Ann. Pure Appl. Log..

[7]  Giorgi Japaridze,et al.  Sequential operators in computability logic , 2007, Inf. Comput..

[8]  Jade Alglave,et al.  Herding cats: modelling, simulation, testing, and data-mining for weak memory , 2014, PLDI 2014.

[9]  Gérard Boudol,et al.  Relaxed memory models: an operational approach , 2009, POPL '09.