Multilisp: A Language for Concurrent Symbolic Computation

Multilisp: A Language for Concurrent Symbolic Computation

October 1985 | ROBERT H. HALSTEAD, JR.
Multilisp is an extended version of the Scheme dialect of Lisp, designed for symbolic computation and parallel execution. Unlike traditional Lisp, Multilisp includes constructs for causing side effects and explicitly introducing parallelism, making it suitable for expressing concurrency in programs. The language supports a shared memory model and uses a "future" construct to manage concurrent tasks and synchronization. Multilisp is being implemented on the 32-processor Concert multiprocessor, with plans for larger multiprocessors. The current implementation, Concert Multilisp, supports the Multilisp compiler and has been tested on up to eight processors. It employs novel techniques for task scheduling and garbage collection, including an unfair scheduling policy and a multiprocessor garbage collector based on incremental garbage collection algorithms. The paper discusses the design goals of parallel programming languages, compares different approaches, and provides detailed descriptions of Multilisp's features, including its use of futures and pcall constructs. It also compares Multilisp with other Lisp-based languages for parallel computing and discusses the implementation on the Concert multiprocessor.Multilisp is an extended version of the Scheme dialect of Lisp, designed for symbolic computation and parallel execution. Unlike traditional Lisp, Multilisp includes constructs for causing side effects and explicitly introducing parallelism, making it suitable for expressing concurrency in programs. The language supports a shared memory model and uses a "future" construct to manage concurrent tasks and synchronization. Multilisp is being implemented on the 32-processor Concert multiprocessor, with plans for larger multiprocessors. The current implementation, Concert Multilisp, supports the Multilisp compiler and has been tested on up to eight processors. It employs novel techniques for task scheduling and garbage collection, including an unfair scheduling policy and a multiprocessor garbage collector based on incremental garbage collection algorithms. The paper discusses the design goals of parallel programming languages, compares different approaches, and provides detailed descriptions of Multilisp's features, including its use of futures and pcall constructs. It also compares Multilisp with other Lisp-based languages for parallel computing and discusses the implementation on the Concert multiprocessor.
Reach us at info@study.space