Abstract
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.
Keywords
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.
This research was supported by NSFC 61100063, 61161130530, 61073040, 61103023, and China Postdoctoral Science Foundation 201104162, 2012M511420.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Abadi, M., Manna, Z.: Temporal logic programming. Journal of Symbolic Computation 8, 277–295 (1989)
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)
Duan, Z., Koutny, M.: A framed temporal logic programming language. Journal of Computer Science and Technology 19, 341–351 (2004)
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)
Duan, Z., Zhang, N.: A complete axiomatization of propositional projection temporal logic. In: TASE 2008, pp. 271–278. IEEE Computer Science (2008)
Harris, T.L., Fraser, K.: Language support for lightweight transactions, pp. 388–402 (2003)
Lamport, L.: The temporal logic of actions. ACM Trans. Program. Lang. Syst. 16(3), 872–923 (1994)
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)
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)
Moszkowski, B.C.: Executing temporal logic programs. Cambridge University Press (1986)
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)
Rondogiannis, P., Gergatsoulis, M., Panayiotopoulos, T.: Branching-time logic programming: The language cactus and its applications. Computer Language 24(3), 155–178 (1998)
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)
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)
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)
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)
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)
Yang, X., Duan, Z.: Operational semantics of framed tempura. Journal of Logic and Algebraic Programming 78(1), 22–51 (2008)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Yang, X., Zhang, Y., Fu, M., Feng, X. (2012). A Concurrent Temporal Programming Model with Atomic Blocks. In: Aoki, T., Taguchi, K. (eds) Formal Methods and Software Engineering. ICFEM 2012. Lecture Notes in Computer Science, vol 7635. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-34281-3_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-34281-3_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-34280-6
Online ISBN: 978-3-642-34281-3
eBook Packages: Computer ScienceComputer Science (R0)