- Managing Program State
- Synchronization: Kinds and Techniques
- Where Are We?
- Further Reading
Further Reading
M. Aiken, M. Fahndrich, C. Hawblitzel, G. Hunt, J. R. Larus. Deconstructing Process Isolation. Microsoft Research Technical Report, MSR-TR-2006-43 (2006).
J. Armstrong. Programming Erlang: Software for a Concurrent World (The Pragmatic Programmers, 2007).
C. Boyapati, B. Liskov, L. Shrira. Ownership Types for Object Encapsulation. In ACM Symposium on Principles of Programming Languages (POPL) (2003).
P. Brinch Hansen. Structured Multiprogramming. Communications of the ACM, Vol. 15, No. 7 (1972).
J. Choi, M. Gupta, M. Serrano, V. C. Sreedhar, S. Midkiff. Escape Analysis for Java. In Proceedings of the 14th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (1999).
E. W. Dijkstra. Co-operating Sequential Processes. In Programming Languages (Academic Press, 1965).
E. W. Dijkstra. Solution of a Problem in Concurrent Programming Control. Communications of the ACM, Vol. 8, No. 9 (1965).
F. Drejhammar, C. Schulte. Implementation Strategies for Single Assignment Variables. Colloquium on Implementation of Constraint and Logic Programming Systems (CICLOPS) (2004).
R. H. Halstead, Jr. MULTILISP: A Language for Concurrent Symbolic Computation. ACM Transactions on Programming Languages and Systems (TOPLAS), Vol. 7, Issue 4 (1985).
M. Herlihy and J. Wing. Linearizability: A Correctness Condition for Concurrent Objects. In ACM Transactions on Programming Languages and Systems, 12 (3) (1990).
R. Hieb, R. Kent Dybvig. Continuations and Concurrency. In Proceedings of the Second ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (1990).
C. A. R. Hoare. Monitors: An Operating System Structuring Concept. Communications of the ACM, Vol. 17, No. 10 (1974).
C. A. R. Hoare. Communicating Sequential Processes. Communications of the ACM, Vol. 21, No. 8 (1978).
C. A. R. Hoare. Communicating Sequential Processes (Prentice Hall, 1985).
C. H. Koelbel, D. B. Loveman, R. S. Schreiber, G. L. Steele, Jr., M. E. Zosel. The High Performance FORTRAN Handbook (MIT Press, 1994).
L. Lamport. A New Solution of Dijkstra’s Concurrent Programming Problem. Communications of the ACM, Vol. 17, No. 8 (1974).
L. Lamport. Verification and Specification of Concurrent Programs. A Decade of Concurrency: Reflections and Perspectives, Lecture Notes in Computer Science, Number 803 (1993).
H. Lieberman. Concurrent Object-oriented Programming in Act 1. Object-oriented Concurrent Programming (MIT Press, 1987).
G. L. Peterson. Myths About the Mutual Exclusion Problem. Inf. Proc. Lett., 12, 115–116 (1981).
M. Raynal. Algorithms for Mutual Exclusion (MIT Press, 1986).
D. Sangiorgi, D. Walker. The Pi-Calculus: A Theory of Mobile Processes (Cambridge University Press, 2003).
N. Shavit, D. Touitou. Software Transactional Memory. In Proceedings of the 14th Annual ACM Symposium on Principles of Distributed Computing (1995).
B. Stroustrup. The C++ Programming Language, Third Edition (Addison-Wesley, 1997).