List processing in real time on a serial computer
Communications of the ACM
A nonrecursive list compacting algorithm
Communications of the ACM
A LISP garbage-collector for virtual-memory computer systems
Communications of the ACM
HYDRA: the kernel of a multiprocessor operating system
Communications of the ACM
Minimal and optimal computations of recursive programs
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Synchronization in actor systems
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
FUNCTIONAL DOMAINS OF APPLICATIVE LANGUAGES
FUNCTIONAL DOMAINS OF APPLICATIVE LANGUAGES
Survey on special purpose computer architectures for AI
ACM SIGART Bulletin
Lively linear Lisp: “look ma, no garbage!”
ACM SIGPLAN Notices
The J-machine multicomputer: an architectural evaluation
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Equal rights for functional objects or, the more things change, the more they are the same
ACM SIGPLAN OOPS Messenger
A bibliography on garbage collection and related topics
ACM SIGPLAN Notices
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
Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures
Provably efficient scheduling for languages with fine-grained parallelism
Journal of the ACM (JACM)
A provably time-efficient parallel implementation of full speculation
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Syntactic Theory of Message Passing
Journal of the ACM (JACM)
Deleting Irrelevant Tasks in an Expression-Oriented Multiprocessor System
ACM Transactions on Programming Languages and Systems (TOPLAS)
Referencing and Retention in Block-Structured Coroutines
ACM Transactions on Programming Languages and Systems (TOPLAS)
Multiprocessing Extensions in Spur Lisp
IEEE Software
Qlisp: Parallel Processing in Lisp
IEEE Software
Explicit parallelism in LISP-like languages
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
MULTI - a LISP based multiprocessing system
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
A language implementation design for a multiprocessor computer system
ISCA '78 Proceedings of the 5th annual symposium on Computer architecture
Performance of a multiprocessor for Applicative programs
PERFORMANCE '80 Proceedings of the 1980 international symposium on Computer performance modelling, measurement and evaluation
A reliable object-oriented data repository for a distributed computer system
SOSP '81 Proceedings of the eighth ACM symposium on Operating systems principles
If-then-else as a concurrency inhibitor in eager beaver evaluation of recursive programs
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
The semantics of future and an application
Journal of Functional Programming
Ambient references: addressing objects in mobile networks
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Adding parallelism capabilities to ACL2
ACL2 '06 Proceedings of the sixth international workshop on the ACL2 theorem prover and its 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)
A formal model of a system for automated program parallelization
Programming and Computing Software
Linguistic symbiosis between actors and threads
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Linguistic symbiosis between event loop actors and threads
Computer Languages, Systems and Structures
Proceedings of the 6th international workshop on Middleware for pervasive and ad-hoc computing
Implementing Flexible Parallelism for Modular Self-reconfigurable Robots
SIMPAR '08 Proceedings of the 1st International Conference on Simulation, Modeling, and Programming for Autonomous Robots
Minimal Ownership for Active Objects
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Type-safe higher-order channels with channel locality1
Journal of Functional Programming
Fast memory snapshot for concurrent programmingwithout synchronization
Proceedings of the 23rd international conference on Supercomputing
Intra-Object versus Inter-Object: Concurrency and Reasoning in Creol
Electronic Notes in Theoretical Computer Science (ENTCS)
A Verification System for Distributed Objects with Asynchronous Method Calls
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Deferred cancellation: a behavioral pattern
Proceedings of the 15th Conference on Pattern Languages of Programs
A complete guide to the future
ESOP'07 Proceedings of the 16th European conference on Programming
Writing concurrent desktop applications in an actor-based programming model
Proceedings of the 3rd International Workshop on Multicore Software Engineering
Persistent queries in the behavioral theory of algorithms
ACM Transactions on Computational Logic (TOCL)
JCoBox: generalizing active objects to concurrent components
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Self-replicating objects for multicore platforms
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
Orleans: cloud computing for everyone
Proceedings of the 2nd ACM Symposium on Cloud Computing
A parallel programming model for ada
SIGAda '11 Proceedings of the 2011 ACM annual international conference on Special interest group on the ada programming language
Generating synchronization statements in divide-and-conquer programs
Parallel Computing
Programming an amorphous computational medium
UPP'04 Proceedings of the 2004 international conference on Unconventional Programming Paradigms
A concurrent lambda calculus with futures
FroCoS'05 Proceedings of the 5th international conference on Frontiers of Combining Systems
Concurrency, Compositionality, and Correctness
Swift: A language for distributed parallel scripting
Parallel Computing
A system for compositional verification of asynchronous objects
Science of Computer Programming
Conservative Concurrency in Haskell
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
Liberating the programmer with prorogued programming
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Compositional reasoning about shared futures
SEFM'12 Proceedings of the 10th international conference on Software Engineering and Formal Methods
On-the-fly pipeline parallelism
Proceedings of the twenty-fifth annual ACM symposium on Parallelism in algorithms and architectures
Higher-order functional reactive programming without spacetime leaks
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Using HPX and LibGeoDecomp for scaling HPC applications on heterogeneous supercomputers
ScalA '13 Proceedings of the Workshop on Latest Advances in Scalable Algorithms for Large-Scale Systems
Hi-index | 0.00 |
This paper investigates some problems associated with an argument evaluation order that we call “future” order, which is different from both call-by-name and call-by-value, In call-by-future, each formal parameter of a function is bound to a separate process (called a “future”) dedicated to the evaluation of the corresponding argument. This mechanism allows the fully parallel evaluation of arguments to a function, and has been shown to augment the expressive power of a language. We discuss an approach to a problem that arises in this context: futures which were thought to be relevant when they were created become irrelevant through being ignored in the body of the expression where they were bound. The problem of irrelevant processes also appears in multiprocessing problem-solving systems which start several processors working on the same problem but with different methods, and return with the solution which finishes first. This parallel method strategy has the drawback that the processes which are investigating the losing methods must be identified, stopped, and re-assigned to more useful tasks.