A Concurrent Temporal Programming Model with Atomic Blocks

  • Xiaoxiao Yang
  • Yu Zhang
  • Ming Fu
  • Xinyu Feng
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7635)


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.


Temporal Logic Logic Programming Latency Assignment Concurrent Program State Formula 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abadi, M., Manna, Z.: Temporal logic programming. Journal of Symbolic Computation 8, 277–295 (1989)MathSciNetzbMATHCrossRefGoogle Scholar
  2. 2.
    Derrick, J., Schellhorn, G., Wehrheim, H.: Verifying Linearisability with Potential Linearisation Points. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 323–337. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  3. 3.
    Duan, Z., Koutny, M.: A framed temporal logic programming language. Journal of Computer Science and Technology 19, 341–351 (2004)MathSciNetCrossRefGoogle Scholar
  4. 4.
    Duan, Z., Yang, X., Koutny, M.: Semantics of Framed Temporal Logic Programs. In: Gabbrielli, M., Gupta, G. (eds.) ICLP 2005. LNCS, vol. 3668, pp. 356–370. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. 5.
    Duan, Z., Zhang, N.: A complete axiomatization of propositional projection temporal logic. In: TASE 2008, pp. 271–278. IEEE Computer Science (2008)Google Scholar
  6. 6.
    Harris, T.L., Fraser, K.: Language support for lightweight transactions, pp. 388–402 (2003)Google Scholar
  7. 7.
    Lamport, L.: The temporal logic of actions. ACM Trans. Program. Lang. Syst. 16(3), 872–923 (1994)CrossRefGoogle Scholar
  8. 8.
    Ma, Y., Duan, Z., Wang, X., Yang, X.: An interpreter for framed tempura and its application. In: Proc. 1st Joint IEEE/IFIP Symp. on Theoretical Aspects of Soft. Eng. (TASE 2007), pp. 251–260 (2007)Google Scholar
  9. 9.
    Michael, M.M., Scott, M.L.: Nonblocking algorithms and preemption-safe locking on multiprogrammed shared memory multiprocessors. J. Parallel Distrib. Comput. 51(1), 1–26 (1998)zbMATHCrossRefGoogle Scholar
  10. 10.
    Moszkowski, B.C.: Executing temporal logic programs. Cambridge University Press (1986)Google Scholar
  11. 11.
    Pnueli, A.: The Temporal Semantics of Concurrent Programs. In: Kahn, G. (ed.) Semantics of Concurrent Computation. LNCS, vol. 70, pp. 1–20. Springer, Heidelberg (1979)CrossRefGoogle Scholar
  12. 12.
    Rondogiannis, P., Gergatsoulis, M., Panayiotopoulos, T.: Branching-time logic programming: The language cactus and its applications. Computer Language 24(3), 155–178 (1998)zbMATHCrossRefGoogle Scholar
  13. 13.
    Schellhorn, G., Tofan, B., Ernst, G., Reif, W.: Interleaved programs and rely-guarantee reasoning with itl. In: Proc. TIME 2011, pp. 99–106. IEEE Computer Science (2011)Google Scholar
  14. 14.
    Tang, C.: A temporal logic language oriented toward software engineering – introduction to XYZ system (I). Chinese Journal of Advanced Software Research 1, 1–27 (1994)Google Scholar
  15. 15.
    Tian, C., Duan, Z.: Model Checking Propositional Projection Temporal Logic Based on SPIN. In: Butler, M., Hinchey, M.G., Larrondo-Petrie, M.M. (eds.) ICFEM 2007. LNCS, vol. 4789, pp. 246–265. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  16. 16.
    Vafeiadis, V., Parkinson, M.: A Marriage of Rely/Guarantee and Separation Logic. In: Caires, L., Vasconcelos, V.T. (eds.) CONCUR 2007. LNCS, vol. 4703, pp. 256–271. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  17. 17.
    Yang, N., Adam, W., Adl-Tabatabai, Bach, M., Berkowits, S.: Design and implementation of transactional constructs for C/C++. In: Proceedings OOPSLA 2008, pp. 195–212 (September 2008)Google Scholar
  18. 18.
    Yang, X., Duan, Z.: Operational semantics of framed tempura. Journal of Logic and Algebraic Programming 78(1), 22–51 (2008)MathSciNetzbMATHCrossRefGoogle Scholar
  19. 19.
    Zyulkyarov, F., Harris, T., Unsal, O.S., Cristal, A., Valeroh, M.: Debugging programs that use atomic blocks and transactional memory. In: Proc. PPoPP 2010, pp. 57–66 (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Xiaoxiao Yang
    • 1
  • Yu Zhang
    • 1
  • Ming Fu
    • 2
  • Xinyu Feng
    • 2
  1. 1.State Key Laboratory of Computer Science, Institute of SoftwareChinese Academy of SciencesBeijingChina
  2. 2.University of Science and Technology of ChinaHefeiChina

Personalised recommendations