MultiLisp


Also found in: Wikipedia.

MultiLisp

(language)
A parallel extension of Scheme with explicit concurrency. The form (future X) immediately returns a "future", and creates a task to evaluate X. When the evaluation is complete, the future is resolved to be the value.

["MultiLisp: A Language for Concurrent Symbolic Computation", R. Halstead, TOPLAS pp.501-538 (Oct 1985)].

References in periodicals archive ?
Multilisp [Halstead 1985] is a typical parallel functional language, which augments Scheme with the notion of futures where the programmer needs no knowledge about the underlying process model, interprocess communication or synchronization to express parallelism.
Eager invocation, or the futures method, is a variation of asynchronous communication (see also our discussion of futures in Multilisp in Section 3.
The work-stealing idea dates back at least as far as Burton and Sleep's [1981] research on parallel execution of functional programs and Halstead's [1984] implementation of Multilisp.
Given some C programmers, Scheme programmers and Prolog programmers, all of whom need to develop parallel applications, we could recommend three independent, tailor-made parallel variants of these languages--for example Concurrent C [16], Multilisp [19] and Parlog [26].
b) generalize the semantic model of some base language to produce a new and complete parallel language (as in Multilisp [19], the concureent logic languages, Concurrent Smalltalk [10] and many others); or
he developed the "futures" programming-language construct and implemented it in the parallel programming language Multilisp.
With futures in languages such as Multilisp [Halstead 1985; 1989; Osborne 1989] and MultiScheme [Miller 1987], the programmer explicitly states what should be evaluated in parallel using the future annotation.
The futures of MultiLisp [5] and Qlets of QLisp [4] are a few of the other examples of systems that use annotations effectively,
1990], Multilisp [Halstead 1985], Proteus [Mills et al.
The Multilisp [Halstead 1986] language is an extension of Lisp in which opportunities for parallelism are created using futures.
Multilisp futures also support a similar model of computation, although programs that use futures may not execute deterministically if the computations encapsulated in futures imperatively update externally visible data [Halstead 1985].
Using MultiLisp for solving constraint satisfaction problems: An application to nucleic acid 3D structure determination.