A Concurrent Lambda Calculus with Futures

Abstract : We introduce a new lambda calculus with futures, Lambda(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. Lambda(fut) is a minimalist extension of the call-by-value lambda-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 Lambda(fut) is sufficiently powerful to support explicit recursion and call-by-need evaluation. We present a static type system for Lambda(fut) and distinguish a fragment of Lambda(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 Lambda(fut)'s handled future-construct. Finally, we present a linear type system for Lambda(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.
Type de document :
Article dans une revue
Theoretical Computer Science, Elsevier, 2006, Theoretical Computer Science, 364 (3), pp.338-356. 〈10.1016/j.tcs.2006:08.016〉
Liste complète des métadonnées

Littérature citée [38 références]  Voir  Masquer  Télécharger

https://hal.inria.fr/inria-00090434
Contributeur : Joachim Niehren <>
Soumis le : jeudi 31 août 2006 - 18:52:58
Dernière modification le : jeudi 17 mai 2018 - 12:52:03
Document(s) archivé(s) le : lundi 20 septembre 2010 - 16:51:43

Fichier

Identifiants

Collections

Citation

Joachim Niehren, Jan Schwinghammer, Gert Smolka. A Concurrent Lambda Calculus with Futures. Theoretical Computer Science, Elsevier, 2006, Theoretical Computer Science, 364 (3), pp.338-356. 〈10.1016/j.tcs.2006:08.016〉. 〈inria-00090434v2〉

Partager

Métriques

Consultations de la notice

342

Téléchargements de fichiers

871