MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Research topics in functional programming
Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
NSL '94 Proceedings of the first workshop on Non-standard logics and logical aspects of computer science
Correctness of monadic state: an imperative call-by-need calculus
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Communicating and mobile systems: the &pgr;-calculus
Communicating and mobile systems: the &pgr;-calculus
An operational semantics for parallel lazy evaluation
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
PI-Calculus: A Theory of Mobile Processes
PI-Calculus: A Theory of Mobile Processes
ICALP '95 Proceedings of the 22nd International Colloquium on Automata, Languages and Programming
Monads for Functional Programming
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Parallel Graph Rewriting on Loosely Coupled Machine Architectures
Proceedings of the 2nd International CTRS Workshop on Conditional and Typed Rewriting Systems
The incremental garbage collection of processes
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
Formal Foundations of Operational Semantics
Higher-Order and Symbolic Computation
The semantics of future and an application
Journal of Functional Programming
Algorithm + strategy = parallelism
Journal of Functional Programming
On the representation of McCarthy's amb in the π-calculus
Theoretical Computer Science - Expressiveness in concurrency
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Parallel functional programming in Eden
Journal of Functional Programming
Information and Computation
A concurrent lambda calculus with futures
Theoretical Computer Science - Applied semantics
Observational Semantics for a Concurrent Lambda Calculus with Reference Cells and Futures
Electronic Notes in Theoretical Computer Science (ENTCS)
Mathematical Structures in Computer Science
Correctly translating concurrency primitives
Proceedings of the 2009 ACM SIGPLAN workshop on ML
Closures of may-, should- and must-convergences for contextual equivalence
Information Processing Letters
On generic context lemmas for higher-order calculi with sharing
Theoretical Computer Science
Correctness of copy in calculi with letrec
RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
A tutorial on parallel and concurrent programming in Haskell
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Seq no more: better strategies for parallel Haskell
Proceedings of the third ACM Haskell symposium on Haskell
Correctness of program transformations as a termination problem
IJCAR'12 Proceedings of the 6th international joint conference on Automated Reasoning
Conservative Concurrency in Haskell
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
Programming parallelism with futures in lustre
Proceedings of the tenth ACM international conference on Embedded software
Correctness of an STM Haskell implementation
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
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.