MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
A calculus for assignments in higher-order languages
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Parallel computation and computers for artificial intelligence
An implementation of portable standard LISP on the BBN butterfly
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
A parallel virtual machine for efficient scheme compilation
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Continuing into the future: on the interaction of futures and first-class continuations
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Lazy task creation: a technique for increasing the granularity of parallel programs
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Proceedings of the US/Japan workshop on Parallel Lisp on Parallel Lisp: languages and systems
Proceedings of the US/Japan workshop on Parallel Lisp on Parallel Lisp: languages and systems
Proceedings of the US/Japan workshop on Parallel Lisp on Parallel Lisp: languages and systems
Control-flow analysis of higher-order languages of taming lambda
Control-flow analysis of higher-order languages of taming lambda
The revised report on the syntactic theories of sequential control and state
Theoretical Computer Science
Global tagging optimization by type inference
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Higher-order concurrency
An efficient and general implementation of futures on large scale shared-memory multiprocessors
An efficient and general implementation of futures on large scale shared-memory multiprocessors
Set based program analysis
Soft typing with conditional types
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A practical soft type system for Scheme
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Analyzing stores and references in a parallel symbolic language
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Set-based analysis of ML programs
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
The semantics of future and its use in program optimization
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type system equivalent to flow analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compiler correctness for parallel languages
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Formal language, grammar and set-constraint-based program analysis by abstract interpretation
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
pHluid: the design of a parallel functional language implementation on workstations
Proceedings of the first ACM SIGPLAN international conference on Functional programming
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
A Parallel Lisp Language PaiLisp and Its Kernel Specification
Proceedings of the US/Japan Workshop on Parallel Lisp: Languages and Systems
Mul-T: A High-Performance Parallel Lisp
Proceedings of the US/Japan Workshop on Parallel Lisp: Languages and Systems
The incremental garbage collection of processes
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
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)
An operational semantics for scheme1
Journal of Functional Programming
Active Objects and Distributed Components: Theory and Implementation
Formal Methods for Components and Objects
COORDINATION '09 Proceedings of the 11th International Conference on Coordination Models and Languages
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
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)
A complete guide to the future
ESOP'07 Proceedings of the 16th European conference on Programming
A contextual semantics for concurrent Haskell with futures
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
Family of abstract interpretations for static analysis of concurrent higher-order programs
SAS'11 Proceedings of the 18th international conference on Static analysis
Analysis of recursively parallel programs
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A concurrent lambda calculus with futures
FroCoS'05 Proceedings of the 5th international conference on Frontiers of Combining Systems
Dependence analysis for safe futures
Science of Computer Programming
A proof system for a PGAS language
Concurrency, Compositionality, and Correctness
ASPfun: A typed functional active object calculus
Science of Computer Programming
Isolating determinism in multi-threaded programs
RV'11 Proceedings of the Second international conference on Runtime verification
Dataflow constructs for a language extension based on the algebra of communicating processes
Proceedings of the 4th Workshop on Scala
Analysis of Recursively Parallel Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
The future annotation of MultiLisp provides a simple method for taming the implicit parallelism of functional programs. Prior research on future has concentrated on implementation and design issues, and has largely ignored the development of a semantic characterization of future. This paper considers an idealized functional language with futures and presents a series of operational semantics with increasing degrees of intensionality. The first semantics defines future to be a semantically transparent annotation. The second semantics interprets a future expression as a potentially parallel task. The third semantics explicates the coordination of parallel tasks by introducing placeholder objects and touch operations.We use the last semantics to derive a program analysis algorithm and an optimization algorithm that removes provably redundant touch operations. Experiments with the Gambit compiler indicate that this optimization significantly reduces the overhead imposed by touch operations.