MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Promises: linguistic support for efficient asynchronous procedure calls in distributed systems
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
I-structures: data structures for parallel computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
The family of concurrent logic programming languages
ACM Computing Surveys (CSUR)
The semantic foundations of concurrent constraint programming
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Simple imperative polymorphism
Lisp and Symbolic Computation - Special issue on state in programming languages (part I)
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
The semantics of Scheme with future
Proceedings of the first ACM SIGPLAN international conference on Functional programming
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The reflexive CHAM and the join-calculus
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The π-calculus in direct style
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lambda calculus with explicit recursion
Information and Computation
Concurrent programming in ML
Efficient logic variables for distributed computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Pict: a programming language based on the Pi-Calculus
Proof, language, and interaction
ML with Concurrency
A Fully Abstract May Testing Semantics for Concurrent Objects
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
Implicit Typing à la ML for the Join-Calculus
CONCUR '97 Proceedings of the 8th International Conference on Concurrency Theory
Jocaml: Mobile Agents for Objective-Caml
ASAMA '99 Proceedings of the First International Symposium on Agent Systems and Applications Third International Symposium on Mobile Agents
The incremental garbage collection of processes
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
Generativity and dynamic opacity for abstract types
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Uniform confluence in concurrent computation
Journal of Functional Programming
The semantics of future and an application
Journal of Functional Programming
The call-by-need lambda calculus
Journal of Functional Programming
The call-by-need lambda calculus
Journal of Functional Programming
A Theory of Distributed Objects
A Theory of Distributed Objects
The missing link: dynamic components for ML
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Generic Pickling and Minimization
Electronic Notes in Theoretical Computer Science (ENTCS)
A concurrent lambda calculus with futures
FroCoS'05 Proceedings of the 5th international conference on Frontiers of Combining Systems
The missing link: dynamic components for ML
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Observational Semantics for a Concurrent Lambda Calculus with Reference Cells and Futures
Electronic Notes in Theoretical Computer Science (ENTCS)
Status report: hot pickles, and how to serve them
ML '07 Proceedings of the 2007 workshop on Workshop on ML
Stopping safely hierarchical distributed components: application to GCM
Proceedings of the 2008 compFrame/HPC-GECO workshop on Component based high performance
Active Objects and Distributed Components: Theory and Implementation
Formal Methods for Components and Objects
Asynchronous sequential processes
Information and Computation
Correctly translating concurrency primitives
Proceedings of the 2009 ACM SIGPLAN workshop on ML
Functional Active Objects: Typing and Formalisation
Electronic Notes in Theoretical Computer Science (ENTCS)
Transparent First-class Futures and Distributed Components
Electronic Notes in Theoretical Computer Science (ENTCS)
On generic context lemmas for higher-order calculi with sharing
Theoretical Computer Science
A complete guide to the future
ESOP'07 Proceedings of the 16th European conference on Programming
A mechanized model of the theory of objects
FMOODS'07 Proceedings of the 9th IFIP WG 6.1 international conference on Formal methods for open object-based distributed systems
Links: web programming without tiers
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
Asynchronous Components with Futures: Semantics and Proofs in Isabelle/HOL
Electronic Notes in Theoretical Computer Science (ENTCS)
Lolliproc: to concurrency from classical linear logic via curry-howard and control
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
JCoBox: generalizing active objects to concurrent components
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
A contextual semantics for concurrent Haskell with futures
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
Classical call-by-need and duality
TLCA'11 Proceedings of the 10th international conference on Typed lambda calculi and applications
First class futures: specification and implementation of update strategies
Euro-Par 2010 Proceedings of the 2010 conference on Parallel processing
Concurrency, Compositionality, and Correctness
ASPfun: A typed functional active object calculus
Science of Computer Programming
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
Hi-index | 0.00 |
We introduce a new lambda calculus with futures, λ(fut), that models the operational semantics of concurrent statically typed functional programming languages with mixed eager and lazy threads such as Alice ML, a concurrent extension of Standard ML. λ(fut) is a minimalist extension of the call-by-value λ-calculus that is sufficiently expressive to define and combine a variety of standard concurrency abstractions, such as channels, semaphores, and ports. Despite its minimality, the basic machinery of λ(fut) is sufficiently powerful to support explicit recursion and call-by-need evaluation.We present a static type system for λ(fut) and distinguish a fragment of λ(fut) that we prove to be uniformly confluent. This result confirms our intuition that reference cells are the sole source of indeterminism. This fragment assumes the absence of so called handle errors that violate the single assignment assumption of λ(fut)'s handled future-construct.Finally, we present a linear type system for λ(fut) by which to prove the absence of handle errors. Our system is rich enough to type definitions of the above mentioned concurrency abstractions. Consequently, these cannot be corrupted in any (not necessarily linearly) well-typed context.