Abstract
This article presents a static system for checking determinism (technically, partial confluence) of communicating concurrent processes. Our approach automatically detects partial confluence in programs communicating via a mix of different kinds of communication methods: rendezvous channels, buffered channels, broadcast channels, and reference cells. Our system reduces the partial confluence checking problem in polynomial time (in the size of the program) to the problem of solving a system of rational linear inequalities, and is thus efficient.
- Aiken, A. and Gay, D. 1998. Barrier inference. In Proceedings of the 25th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 342--354. Google Scholar
Digital Library
- Blom, S. and van de Pol, J. 2002. State space reduction by proving confluence. In Proceedings of the 14th International Conference on Computer Aided Verification. 596--609. Google Scholar
Digital Library
- Boudol, G. 1992. Asynchrony and the pi-calculus. Tech. rep. 1702, INRIA Sophia Antipolis.Google Scholar
- Boyland, J. 2003. Checking interference with fractional permissions. In Proceedings of the 10th International Symposium on Static Ananysis. 55--72. Google Scholar
Digital Library
- Coates, W. S., Lexau, J. K., Jones, I. W., Fairbanks, S. M., and Sutherland, I. E. 2001. Fleetzero: An asynchronous switching experiment. In Proceedings of the 7th International Symposium on Advanced Research in Asynchronous Circuits and Systems (ASYNC'01). IEEE Computer Society. Google Scholar
Digital Library
- Crary, K., Walker, D., and Morrisett, G. 1999. Typed memory management in a calculus of capabilities. In Proceedings of the 26th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 262--275. Google Scholar
Digital Library
- DeLine, R. and Fähndrich, M. 2001. Enforcing High-Level Protocols in Low-Level Software. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 1, 59--69. Google Scholar
Digital Library
- Edwards, S. A. and Tardieu, O. 2005. Shim: a deterministic model for heterogeneous embedded systems. In Proceedings of the 5th ACM International Conference On Embedded Software. 264--272. Google Scholar
Digital Library
- Foster, J. S., Terauchi, T., and Aiken, A. 2002. Flow-sensitive type qualifiers. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. Google Scholar
Digital Library
- Gordon, A. D. and Jeffrey, A. 2001. Typing correspondence assertions for communication protocols. Theor. Comput. Sci. 45. Google Scholar
Digital Library
- Gordon, A. D. and Jeffrey, A. 2002. Types and Effects for Asymmetric Cryptographic Protocols. IEEE Computer Society.Google Scholar
- Groote, J. F. and van de Pol, J. 2000. State space reduction using partial tau-confluence. In Proceedings of 25th International Symposium on the Mathematical Foundations of Computer Science. 383--393. Google Scholar
Digital Library
- Hansen, H. and Valmari, A. 2006. Operational determinism and fast algorithms. In Concurrency Theory, 17th International Conference (CONCUR'06). Vol. 4137. Springer, 188--202. Google Scholar
Digital Library
- Honda, K. and Tokoro, M. 1992. On asynchronous communication semantics. In Proceedings of the European Conference on Object-Oriented Programming Workshop on Object-Based Concurrent Computing. Springer-Verlag, 21--51. Google Scholar
Digital Library
- Igarashi, A. and Kobayashi, N. 2004. A generic type system for the pi-calculus. Theor. Comput. Sci. 311, 1-3, 121--163. Google Scholar
Digital Library
- Kahn, G. 1974. The semantics of a simple language for parallel programming In Information Processing. Stockholm, Sweden, 471--475.Google Scholar
- Kobayashi, N. 2007. Personal communication.Google Scholar
- Kobayashi, N., Nakade, M., and Yonezawa, A. 1995. Static analysis of communication for asynchronous concurrent programming languages. In Proceedings of the 2nd International Symposium on Static Analysis. Glasgow, Scotland, 225--242. Google Scholar
Digital Library
- Kobayashi, N., Pierce, B. C., and Turner, D. N. 1999. Linearity and the pi-calculus. ACM Trans. Program. Lang. Syst. 21, 5, 914--947. Google Scholar
Digital Library
- König, B. 2000. Analysing input/output-capabilities of mobile processes with a generic type system. In Proceedings of the 27th International Colloquium on Automata, Languages and Programming. 403--414. Google Scholar
Digital Library
- Lee, E. A. 2006. The problem with threads. Tech. rep. UCB/EECS-2006-1, EECS Department, University of California, Berkeley.Google Scholar
- Megacz, A. 2006. CCCD implementation. http://research.cs.berkeley.edu/project/cccd-impl/README.Google Scholar
- Nestmann, U. and Steffen, M. 1997. Typing confluence. In Proceedings of FMICS '97. 77--101.Google Scholar
- Smith, F., Walker, D., and Morrisett, G. 2000. Alias Types. In Proceedings of the 9th European Symposium on Programming, G. Smolka, Ed. Lecture Notes in Computer Science, vol. 1782. Springer-Verlag, Berlin, Germany, 366--381. Google Scholar
Digital Library
- Sutter, H. and Larus, J. 2005. Software and the concurrency revolution. Queue 3, 7, 54--62. Google Scholar
Digital Library
- Terauchi, T. and Aiken, A. 2005. Witnessing side-effects. In Proceedings of the 10th ACM SIGPLAN International Conference on Functional Programming. ACM, 105--115. Google Scholar
Digital Library
- Terauchi, T. and Aiken, A. 2006. A capability calculus for concurrency and determinism. In Concurrency Theory, 17th International Conference (CONCUR'06). Vol. 4137. Springer, Bonn, Germany, 218--232. Google Scholar
Digital Library
- Walker, D. and Morrisett, G. 2000. Alias types for recursive data structures. In Proceedings of the International Workshop on Types in Compilation. Montreal, Canada. Google Scholar
Digital Library
- Wang, X. and Kwiatkowska, M. 2006. Compositional state space reduction using untangled actions. In Proceedings of the 13th International Workshop on Expressiveness in Concurrency (EXPRESS'06). 16--28.Google Scholar
- Yoshida, N., Berger, M., and Honda, K. 2004. Strong normalisation in the pi-calculus. Inform. Comput. 191, 2, 145--202. Google Scholar
Digital Library
Index Terms
A capability calculus for concurrency and determinism
Recommendations
Static lock capabilities for deadlock freedom
TLDI '12: Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementationWe present a technique --- lock capabilities --- for statically verifying that multithreaded programs with locks will not deadlock. Most previous work on deadlock prevention requires a strict total order on all locks held simultaneously by a thread, but ...
Asserting and checking determinism for multithreaded programs
ESEC/FSE '09: Proceedings of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineeringThe trend towards processors with more and more parallel cores is increasing the need for software that can take advantage of parallelism. The most widespread method for writing parallel software is to use explicit threads. Writing correct multithreaded ...
Type-based safe resource deallocation for shared-memory concurrency
OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsWe propose a type system to guarantee safe resource deallocation for shared-memory concurrent programs by extending the previous type system based on fractional ownerships. Here, safe resource deallocation means that memory cells, locks, or threads are ...








Comments