A contextual semantics for Concurrent Haskell with futures
D Sabel, M Schmidt-Schauß - Proceedings of the 13th international ACM …, 2011 - dl.acm.org
Proceedings of the 13th international ACM SIGPLAN symposium on Principles …, 2011•dl.acm.org
In this paper we analyze the semantics of a higher-order functional language with
concurrent threads, monadic IO and synchronizing variables as in Concurrent Haskell. To
assure declarativeness of concurrent programming we extend the language by implicit,
monadic, and concurrent futures. As semantic model we introduce and analyze the process
calculus CHF, which represents a typed core language of Concurrent Haskell extended by
concurrent futures. Evaluation in CHF is defined by a small-step reduction relation. Using …
concurrent threads, monadic IO and synchronizing variables as in Concurrent Haskell. To
assure declarativeness of concurrent programming we extend the language by implicit,
monadic, and concurrent futures. As semantic model we introduce and analyze the process
calculus CHF, which represents a typed core language of Concurrent Haskell extended by
concurrent futures. Evaluation in CHF is defined by a small-step reduction relation. Using …
In this paper we analyze the semantics of a higher-order functional language with concurrent threads, monadic IO and synchronizing variables as in Concurrent Haskell. To assure declarativeness of concurrent programming we extend the language by implicit, monadic, and concurrent futures. As semantic model we introduce and analyze the process calculus CHF, which represents a typed core language of Concurrent Haskell extended by concurrent futures. Evaluation in CHF is defined by a small-step reduction relation. Using contextual equivalence based on may- and should-convergence as program equivalence, we show that various transformations preserve program equivalence. We establish a context lemma easing those correctness proofs. An important result is that call-by-need and call-by-name evaluation are equivalent in CHF, since they induce the same program equivalence. Finally we show that the monad laws hold in CHF under mild restrictions on Haskell's seq-operator, which for instance justifies the use of the do-notation.
ACM Digital Library