A Concurrent Temporal Programming Model with Atomic Blocks

Atomic blocks, a high-level language construct that allows programmers to explicitly specify the atomicity of operations without worrying about the implementations, are a promising approach that simplifies concurrent programming. On the other hand, temporal logic is a successful model in logic programming and concurrency verification, but none of existing temporal programming models supports concurrent programming with atomic blocks yet. In this paper, we propose a temporal programming model (αPTL) which extends the projection temporal logic (PTL) to support concurrent programming with atomic blocks. The novel construct that formulates atomic execution of code blocks, which we call atomic interval formulas, is always interpreted over two consecutive states, with the internal states of the block being abstracted away. We show that the framing mechanism in interval temporal logic also works in the new model, which consequently supports our development of an executive language. The language supports concurrency by introducing a loose interleaving semantics which tracks only the mutual exclusion between atomic blocks. We demonstrate the usage of αPTL by modeling practical concurrent programs.

[1]  Zhenhua Duan,et al.  A Complete Axiomatization of Propositional Projection Temporal Logic , 2008, 2008 2nd IFIP/IEEE International Symposium on Theoretical Aspects of Software Engineering.

[2]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[3]  John Derrick,et al.  Verifying Linearisability with Potential Linearisation Points , 2011, FM.

[4]  Martín Abadi,et al.  Temporal Logic Programming , 1989, J. Symb. Comput..

[5]  Mateo Valero,et al.  Debugging programs that use atomic blocks and transactional memory , 2010, PPoPP '10.

[6]  Wolfram Schulte,et al.  FM 2011: Formal Methods - 17th International Symposium on Formal Methods, Limerick, Ireland, June 20-24, 2011. Proceedings , 2011, FM.

[7]  Adam Welc,et al.  Design and implementation of transactional constructs for C/C++ , 2008, OOPSLA '08.

[8]  Maciej Koutny,et al.  Semantics of Framed Temporal Logic Programs , 2005, ICLP.

[9]  Krzysztof R. Apt,et al.  Logic Programming , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[10]  Gidon Ernst,et al.  Interleaved Programs and Rely-Guarantee Reasoning with ITL , 2011, 2011 Eighteenth International Symposium on Temporal Representation and Reasoning.

[11]  Ben C. Moszkowski,et al.  Executing temporal logic programs , 1986, Seminar on Concurrency.

[12]  Zhenhua Duan,et al.  An Interpreter for Framed Tempura and Its Application , 2007, First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering (TASE '07).

[13]  Zhenhua Duan,et al.  Model Checking Propositional Projection Temporal Logic Based on SPIN , 2007, ICFEM.

[14]  Kim G. Larsen,et al.  On Modal Refinement and Consistency , 2007, CONCUR.

[15]  Manolis Gergatsoulis,et al.  Branching-Time Logic Programming: The Language Cactus and its Applications , 1998, Comput. Lang..

[16]  Ajitha Rajan,et al.  Requirements Coverage as an Adequacy Measure for Conformance Testing , 2008, ICFEM.

[17]  Maciej Koutny,et al.  A framed temporal logic programming language , 2004, Journal of Computer Science and Technology.

[18]  Zhenhua Duan,et al.  Operational semantics of Framed Tempura , 2008, J. Log. Algebraic Methods Program..

[19]  A. Pnueli The Temporal Semantics of Concurrent Programs , 1979, Theor. Comput. Sci..

[20]  Viktor Vafeiadis,et al.  A Marriage of Rely/Guarantee and Separation Logic , 2007, CONCUR.

[21]  Maged M. Michael,et al.  Nonblocking Algorithms and Preemption-Safe Locking on Multiprogrammed Shared Memory Multiprocessors , 1998, J. Parallel Distributed Comput..

[22]  G. Kahn,et al.  Semantics of Concurrent Computation , 1979, Lecture Notes in Computer Science.

[23]  Keir Fraser,et al.  Language support for lightweight transactions , 2003, SIGP.