Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Parallel Graph Rewriting on Loosely Coupled Machine Architectures
Proceedings of the 2nd International CTRS Workshop on Conditional and Typed Rewriting Systems
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Information and Computation
On the correctness of transactional memory
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Composable memory transactions
Communications of the ACM - Designing games with a purpose
Mathematical Structures in Computer Science
Software transactional memory: why is it only a research toy?
Communications of the ACM - Remembering Jim Gray
A compositional theory for STM Haskell
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Transactional Memory, 2nd Edition
Transactional Memory, 2nd Edition
Proving isolation properties for software transactional memory
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
A contextual semantics for concurrent Haskell with futures
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
On the liveness of transactional memory
PODC '12 Proceedings of the 2012 ACM symposium on Principles of distributed computing
Conservative Concurrency in Haskell
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
Hi-index | 0.00 |
A concurrent implementation of software transactional memory in Concurrent Haskell using a call-by-need functional language with processes and futures is given. The description of the small-step operational semantics is precise and explicit, and employs an early abort of conflicting transactions. A proof of correctness of the implementation is given for a contextual semantics with may- and should-convergence. This implies that our implementation is a correct evaluator for an abstract specification equipped with a big-step semantics.