Proceedings Article10.1145/378795.378858
Asynchronous exceptions in Haskell
Simon Marlow,Simon Jones,Andrew Moran,John Reppy +3 more
- 01 May 2001
- Vol. 36, Iss: 5, pp 274-285
TL;DR: This work extends the earlier work on synchronous exceptions to Haskell to support asynchronous exceptions, and introduces scoped combinators for blocking and unblocking asynchronous interrupts, along with a somewhat surprising semantics for operations that can suspend.
read more
Abstract: Asynchronous exceptions, such as timeouts are important for robust, modular programs, but are extremely difficult to program with — so much so that most programming languages either heavily restrict them or ban them altogether. We extend our earlier work, in which we added synchronous exceptions to Haskell, to support asynchronous exceptions too. Our design introduces scoped combinators for blocking and unblocking asynchronous interrupts, along with a somewhat surprising semantics for operations that can suspend. Uniquely, we also give a formal semantics for our system.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Composable memory transactions
TL;DR: This paper presents a concurrency model, based on transactional memory, that offers far richer composition, and describes modular forms of blocking and choice that were inaccessible in earlier work.
247
Parallel and concurrent programming in Haskell
Simon Marlow
- 14 Jun 2011
TL;DR: This tutorial covers the basic concepts involved in writing parallel and concurrent programs in Haskell, and takes a deliberately practical approach: most of the examples are real Haskell programs that you can compile, run, measure, modify and experiment with.
97
Manticore: a heterogeneous parallel language
Matthew Fluet,Mike Rainey,John Reppy,Adam Shaw,Yingqi Xiao +4 more
- 16 Jan 2007
TL;DR: Manticore as mentioned in this paper is a parallel programming language that combines CML-style explicit concurrency with NESL/Nepal-style data-parallelism, and supports parallelism at multiple levels.
Haskell on a shared-memory multiprocessor
Tim Harris,Simon Marlow,Simon Jones +2 more
- 30 Sep 2005
TL;DR: This paper describes a full-scale implementation of shared-memory parallel Haskell, based on the Glasgow Haskell Compiler, with a lock-free mechanism for evaluating shared thunks that eliminates the major performance bottleneck in parallel evaluation of a lazy language.
Error scope on a computational grid: theory and practice
Douglas Thain,Miron Livny +1 more
- 24 Jul 2002
TL;DR: A theory of error propagation was developed that recognized that the expanded Condor computational grid did not properly consider the scope of errors it discovered, and modified the system according to this theory, and succeeded in making it a more robust platform for distributed computing.
46
References
•Book
The Definition of Standard ML
Robin Milner,Mads Tofte,Robert Harper +2 more
- 01 Jan 1990
TL;DR: This book provides a formal definition of Standard ML for the benefit of all concerned with the language, including users and implementers, and the authors have defined their semantic objects in mathematical notation that is completely independent of StandardML.
2.7K
Concurrent Haskell
Simon Jones,Andrew D. Gordon,Sigbjorn Finne +2 more
- 01 Jan 1996
TL;DR: This work has developed a freely-available implementation of Concurrent Haskell, and is now using it as a substrate for a graphical user interface toolkit.
•Book
Systems programming with Modula-3
Greg Nelson
- 02 Jan 1991
TL;DR: In this paper, the Modula-3 language definition is presented, together with a collection of examples, ranging from a tutorial on an object-oriented window system toolkit, to a review of the low levels of an input-output stream package.
346
M-Structures: Extending a Parallel, Non-strict, Functional Language with State
Paul S. Barth,Rishiyur S. Nikhil,Arvind Nikhil +2 more
- 01 Jun 1991
TL;DR: A solution is to introduce assignments, as in ML and Scheme; however, for meaningful semantics, they resort to strict, sequential evaluation.
135
Queue-based multi-processing LISP
Richard P. Gabriel,John J. McCarthy +1 more
- 06 Aug 1984
TL;DR: This paper proposes multi-processing extensions to Lisp that provides only a few very powerful and intuitive primitives rather than a number of parallel variants of familiar constructs.
Related Papers (5)
[...]
Simon Jones,Andrew D. Gordon,Sigbjorn Finne +2 more
- 01 Jan 1996
Peyton Jones,L Simon +1 more
- 01 Jan 2003
Mitchell Wand
- 25 Aug 1980
Andrew W. Appel
- 29 Nov 1991
Philip Wadler
- 24 May 1995