From Wikipedia, the free encyclopedia
MultiLisp
Paradigms Multi-paradigm: functional, imperative, concurrent, meta
Family Lisp
Designed byRobert H. Halstead Jr.
Developer Massachusetts Institute of Technology (MIT
First appeared1980; 44 years ago (1980)
Typing discipline Dynamic, latent, strong
Scope Lexical
Implementation language Interlisp
PlatformConcert multiprocessor
License Proprietary
Influenced by
Lisp, Scheme
Influenced
Gambit, Interlisp- VAX

MultiLisp is a functional programming language, a dialect of the language Lisp, and of its dialect Scheme, extended with constructs for parallel computing execution and shared memory. These extensions involve side effects, rendering MultiLisp nondeterministic. Along with its parallel-programming extensions, MultiLisp also had some unusual garbage collection and task scheduling algorithms. Like Scheme, MultiLisp was optimized for symbolic computing. Unlike some parallel programming languages, MultiLisp incorporated constructs for causing side effects and for explicitly introducing parallelism.

It was designed by Robert H. Halstead Jr., in the early 1980s for use on the 32-processor Concert multiprocessor then being developed at Massachusetts Institute of Technology (MIT) and implemented in Interlisp. It influenced the development of the Scheme dialects Gambit, [1] and Interlisp- VAX.

PCALL and FUTURE

MultiLisp achieves parallelism with the PCALL macro, where

(PCALL Fun A B C ...)

is equivalent to

(Fun A B C ...)

except that the arguments A, B, C, etc. are explicitly allowed to be evaluated in parallel; this circumvents the usual order of evaluation, which is sequential and left to right. It also makes use of a parallel programming construct called futures, which resembles forking, combined with lazy evaluation. Using this construct, an expression such as

( cons (FUTURE A) (FUTURE B))

can be written, which will overlap the evaluation of the expressions A and B, not only with each other, but with computations that use the result of the cons call, until an operation is performed that needs correct information about the value of A or B.

See also

References

  1. ^ WikiSysop; Mikaelm; Bjlucier; Thedens, Dan (2019-02-06). "Gambit". Retrieved 2019-04-21.
From Wikipedia, the free encyclopedia
MultiLisp
Paradigms Multi-paradigm: functional, imperative, concurrent, meta
Family Lisp
Designed byRobert H. Halstead Jr.
Developer Massachusetts Institute of Technology (MIT
First appeared1980; 44 years ago (1980)
Typing discipline Dynamic, latent, strong
Scope Lexical
Implementation language Interlisp
PlatformConcert multiprocessor
License Proprietary
Influenced by
Lisp, Scheme
Influenced
Gambit, Interlisp- VAX

MultiLisp is a functional programming language, a dialect of the language Lisp, and of its dialect Scheme, extended with constructs for parallel computing execution and shared memory. These extensions involve side effects, rendering MultiLisp nondeterministic. Along with its parallel-programming extensions, MultiLisp also had some unusual garbage collection and task scheduling algorithms. Like Scheme, MultiLisp was optimized for symbolic computing. Unlike some parallel programming languages, MultiLisp incorporated constructs for causing side effects and for explicitly introducing parallelism.

It was designed by Robert H. Halstead Jr., in the early 1980s for use on the 32-processor Concert multiprocessor then being developed at Massachusetts Institute of Technology (MIT) and implemented in Interlisp. It influenced the development of the Scheme dialects Gambit, [1] and Interlisp- VAX.

PCALL and FUTURE

MultiLisp achieves parallelism with the PCALL macro, where

(PCALL Fun A B C ...)

is equivalent to

(Fun A B C ...)

except that the arguments A, B, C, etc. are explicitly allowed to be evaluated in parallel; this circumvents the usual order of evaluation, which is sequential and left to right. It also makes use of a parallel programming construct called futures, which resembles forking, combined with lazy evaluation. Using this construct, an expression such as

( cons (FUTURE A) (FUTURE B))

can be written, which will overlap the evaluation of the expressions A and B, not only with each other, but with computations that use the result of the cons call, until an operation is performed that needs correct information about the value of A or B.

See also

References

  1. ^ WikiSysop; Mikaelm; Bjlucier; Thedens, Dan (2019-02-06). "Gambit". Retrieved 2019-04-21.

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook