Correspondence between ALGOL 60 and Church's Lambda-notation: part I
Communications of the ACM
An Approach to Fair Applicative Multiprogramming
Proceedings of the International Sympoisum on Semantics of Concurrent Computation
Specifying and Proving Properties of Guardians for Distributed Systems
Proceedings of the International Sympoisum on Semantics of Concurrent Computation
The incremental garbage collection of processes
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
Parallelism in algebraic computation and parallel algorithms for symbolic linear systems
SYMSAC '81 Proceedings of the fourth ACM symposium on Symbolic and algebraic computation
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
A bibliography on multiprocessor Lisp systems and applications
ACM SIGPLAN Lisp Pointers
Concurrent LISP on a multi-micro-processor system
IJCAI'81 Proceedings of the 7th international joint conference on Artificial intelligence - Volume 2
Hi-index | 0.00 |
We introduce a LISP-like language whose parameter passing mechanism and control primitives allow for the creation and the synchronization of an arbitrary number of concurrent computations. The parameter passing mechanism is a parallel version of call-by-need: an argument of a function is evaluated only the first time the value of the corresponding formal parameter is needed during the evaluation of the function body, but such an evaluation is only initiated by-need and is then performed in parallel with all the other computations. Some primitives allow the user to initiate new computations explicitly and to check/wait for the termination of already initiated computations. Several examples illustrate how classical problems in multiprogramming have natural and elegant solutions using parallel call-by-need and the above mentioned primitives.