ABSTRACT
We develop a model of concurrent imperative programming with threads. We focus on a small imperative language with cooperative threads which execute without interruption until they terminate or explicitly yield control. We define and study a trace-based denotational semantics for this language; this semantics is fully abstract but mathematically elementary. We also give an equational theory for the computational effects that underlie the language, including thread spawning. We then analyze threads in terms of the free algebra monad for this theory.
- Mart'ın Abadi, Andrew Birrell, Tim Harris, and Michael Isard. Semantics of transactional memory and automatic mutual exclusion. In Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 63--74, 2008. Google Scholar
Digital Library
- Mart'ın Abadi and Gordon D. Plotkin. A logical view of composition. Theoretical Computer Science, 114(1):3--30, June 1993. Google Scholar
Digital Library
- Karl Abrahamson. Modal logic of concurrent nondeterministic programs. In Gilles Kahn, editor, International Symposium on Semantics of Concurrent Computation, volume 70 of Lecture Notes in Computer Science, pages 21-33. Springer, 1979. Google Scholar
Digital Library
- Atul Adya, Jon Howell, Marvin Theimer, William J. Bolosky, and John R. Douceur. Cooperative task management without manual stack management. In Proceedings of the General Track: the 2002 USENIX Annual Technical Conference, pages 289-302, 2002. Google Scholar
Digital Library
- Roberto Amadio and Silvano Dal Zilio. Resource control for synchronous cooperative threads. Theoretical Computer Science, 358:229--254, 2006. Google Scholar
Digital Library
- Nick Benton, John Hughes, and Eugenio Moggi. Monads and effects. In Gilles Barthe, Peter Dybjer, Lu'ıs Pinto, and João Saraiva, editors, Advanced Lectures from International Summer School on Applied Semantics, volume 2395 of Lecture Notes in Computer Science, pages 42--122. Springer, 2002. Google Scholar
Digital Library
- Dave Berry, Robin Milner, and David N. Turner. A semantics for ML concurrency primitives. In Proceedings of the 19th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 119--129, 1992. Google Scholar
Digital Library
- Gérard Boudol. Fair cooperative multithreading. In Luís Caires and Vasco Thudichum Vasconcelos, editors, Concurrency Theory, 18th International Conference, volume 4703 of Lecture Notes in Computer Science, pages 272--286. Springer, 2007. Google Scholar
Digital Library
- Fréderic Boussinot. Fairthreads: mixing cooperative and preemptive threads in C. Concurrency and Computation: Practice and Experience, 18(5):445--469, April 2006. Google Scholar
Digital Library
- Stephen Brookes. Full abstraction for a shared-variable parallel language. Information and Computation, 127(2):145--163, June 1996.Google Scholar
Cross Ref
- Stephen Brookes. The essence of parallel Algol. Information and Computation, 179(1):118--149, 2002. Google Scholar
Digital Library
- Pietro Cenciarelli and Eugenio Moggi. A syntactic approach to modularity in denotational semantics. In Proceedings of the 5th Biennial Meeting on Category Theory and Computer Science, 1993.Google Scholar
- William Ferreira and Matthew Hennessy. A behavioural theory of first-order CML. Theoretical Computer Science, 216(1-2):55--107, 1999. Google Scholar
Digital Library
- Tim Harris, Simon Marlow, Simon Peyton-Jones, and Maurice Herlihy. Composable memory transactions. In Proceedings of the 10th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 48--60, 2005. Google Scholar
Digital Library
- Matthew Hennessy and Gordon D. Plotkin. Full abstraction for a simple programming language. In J. Bećvář, editor, 8th Symposium on Mathematical Foundations of Computer Science, volume 74 of Lecture Notes in Computer Science, pages 108--120. Springer, 1979.Google Scholar
- E. Horita, J. W. de Bakker, and J. J. M. M. Rutten. Fully abstract denotational models for nonuniform concurrent languages. Information and Computation, 115(1):125--178, 1994. Google Scholar
Digital Library
- Martin Hyland, Gordon Plotkin, and John Power. Combining effects: Sum and tensor. Theoretical Computer Science, 357(1-3):70--99, 2006. Google Scholar
Digital Library
- Michael Isard and Andrew Birrell. Automatic mutual exclusion. In Proceedings of the 11th USENIX workshop on Hot Topics in Operating Systems, pages 1--6, 2007. Google Scholar
Digital Library
- Alan Jeffrey. A fully abstract semantics for a concurrent functional language with monadic types. In Proceedings, Tenth Annual IEEE Symposium on Logic in Computer Science, pages 255--264, 1995. Google Scholar
Digital Library
- Alan Jeffrey. Semantics for core Concurrent ML using computation types. In Higher order operational techniques in semantics, pages 55--90. Cambridge University Press, 1997. Google Scholar
Digital Library
- Alan Jeffrey and Julian Rathke. A fully abstract may testing semantics for concurrent objects. Theoretical Computer Science, 338(1-3):17--63, June 2005. Google Scholar
Digital Library
- Microsoft. SQL Server 2005 books online. CLR Hosted Environment, at http://msdn.microsoft.com/en-us/library/ms131047.aspx, September 2007.Google Scholar
- Prakash Panangaden and John H. Reppy. The essence of Concurrent ML. In Flemming Nielson, editor, ML with Concurrency, chapter 1, pages 5--29. Springer, 1997.Google Scholar
- Gordon Plotkin and John Power. Notions of computation determine monads. Lecture Notes in Computer Science, 2303:373--393, 2002. Google Scholar
Digital Library
- Gordon D. Plotkin and John Power. Algebraic operations and generic effects. Applied Categorical Structures, 11(1):69--94, 2003.Google Scholar
Cross Ref
- Gordon D. Plotkin and Matija Pretnar. A logic for algebraic effects. In Proceedings, Twenty-Third Annual IEEE Symposium on Logic in Computer Science, pages 118--129, 2008. Google Scholar
Digital Library
- Nir Shavit and Dan Touitou. Software transactional memory. In Proceedings of the 14th Annual ACM Symposium on Principles of Distributed Computing, pages 204--213, 1995. Google Scholar
Digital Library
- Yannis Smaragdakis, Anthony Kay, Reimer Behrends, and Michal Young. Transactions with isolation and cooperation. In Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 191--210, 2007. Google Scholar
Digital Library
- J. Robert von Behren, Jeremy Condit, Feng Zhou, George C. Necula, and Eric A. Brewer. Capriccio: scalable threads for Internet services. In Proceedings of the 19th ACM Symposium on Operating Systems Principles, pages 268--281, 2003. Google Scholar
Digital Library
- Glynn Winskel. The Formal Semantics of Programming Languages. The MIT Press, 1993. Google Scholar
Digital Library
Index Terms
A model of cooperative threads
Recommendations
A model of cooperative threads
POPL '09We develop a model of concurrent imperative programming with threads. We focus on a small imperative language with cooperative threads which execute without interruption until they terminate or explicitly yield control. We define and study a trace-based ...
Full Abstractness of a Metric Semantics for Action Refinement
For a process language with action refinement and synchronization both an operational and a denotational semantics are given. The operational semantics is based on an SOS-style transition system specification involving syntactical refinement sequences. ...
Giving a net semantics to Markovian process algebra
PNPM '95: Proceedings of the Sixth International Workshop on Petri Nets and Performance ModelsWe define two compositional net semantics for the stochastic process algebra Markovian process algebra (MPA), based on a class of stochastic Petri nets. The first semantics is operational in style and is defined by structural induction. We prove that ...







Comments