ACM Home Page
Please provide us with feedback. Feedback
Transactional events for ML
Full text PdfPdf (244 KB)
Source
International Conference on Functional Programming archive
Proceeding of the 13th ACM SIGPLAN international conference on Functional programming table of contents
Victoria, BC, Canada
SESSION: Session 5 table of contents
Pages 103-114  
Year of Publication: 2008
ISBN:978-1-59593-919-7
Also published in ...
Authors
Laura Effinger-Dean  University of Washington, Seattle, WA, USA
Matthew Kehrt  University of Washington, Seattle, WA, USA
Dan Grossman  University of Washington, Seattle, WA, USA
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 8,   Downloads (12 Months): 90,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1411204.1411222
What is a DOI?

ABSTRACT

Transactional events (TE) are an approach to concurrent programming that enriches the first-class synchronous message-passing of Concurrent ML (CML) with a combinator that allows multiple messages to be passed as part of one all-or-nothing synchronization. Donnelly and Fluet (2006) designed and implemented TE as a Haskell library and demonstrated that it enables elegant solutions to programming patterns that are awkward or impossible in CML. However, both the definition and the implementation of TE relied fundamentally on the code in a synchronization not using mutable memory, an unreasonable assumption for mostly functional languages like ML where functional interfaces may have impure implementations.

We present a definition and implementation of TE that supports ML-style references and nested synchronizations, both of which were previously unnecessary due to Haskell's more restrictive type system. As in prior work, we have a high-level semantics that makes nondeterministic choices such that synchronizations succeed whenever possible and a low-level semantics that uses search to implement the high-level semantics soundly and completely. The key design trade-off in the semantics is to allow updates to mutable memory without requiring the implementation to consider all possible thread interleavings. Our solution uses first-class heaps and allows interleavings only when a message is sent or received. We have used Coq to prove the high- and low-level semantics equivalent.

We have implemented our approach by modifying the Objective Caml run-time system. By modifying the run-time system, rather than relying solely on a library, we can eliminate the potential for nonterminating computations within unsuccessful synchronizations to run forever.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
Kevin Donnelly and Matthew Fluet. Transactional events. The Journal of Functional Programming, 2008. To appear.
3
4
5
6
7
8
 
9
 
10
 
11
Aaron Kimball and Dan Grossman. Software transactions meet first-class continuations. In 8th Annual Workshop on Scheme and Functional Programming, 2007.
 
12
Xavier Leroy. The Objective Caml system release 3.10, Event module, 2007. http://caml.inria.fr/pub/docs/manual-ocaml/libref/Event.html.
13
 
14
Prakash Panangaden and John Reppy. The essence of Concurrent ML. In Flemming Nielson, editor, ML with Concurrency: Design, Analysis, Implementation, and Application, Springer Monographs in Computer Science. Springer-Verlag, 1997.
 
15
16
 
17
John Reppy and Yinqi Xiao. Toward a parallel implementation of Concurrent ML. In Workshop on Declarative Aspects of Multicore Programming, 2008.
18
19
20
 
21
Lukasz Ziarek and Suresh Jagannathan. Memoizing multi-threaded transactions. In Workshop on Declarative Aspects of Multicore Programming, 2008.
22


Collaborative Colleagues:
Laura Effinger-Dean: colleagues
Matthew Kehrt: colleagues
Dan Grossman: colleagues