请输入您要查询的百科知识:

 

词条 MultiLisp
释义

  1. PCALL and FUTURE

  2. See also

  3. References

MultiLisp was a functional programming language and dialect of Scheme, extended with constructs for parallel execution and shared memory. These extensions involve side effects, rendering MultiLisp non-deterministic. In addition to its parallel-programming extensions, MultiLisp also had some unusual garbage collection and task scheduling algorithms. Like Scheme, MultiLisp was oriented toward symbolic computation. Unlike some parallel programming languages, MultiLisp incorporated constructs for causing side effects and for explicitly introducing parallelism.

It was designed by Robert H. Halstead in the early 1980s for use on the 32-processor Concert multiprocessor being developed at MIT and implemented in Interlisp. It has influenced the development of the Scheme dialect Gambit  , 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 requires actual information about the value of A or B.

See also

  • Speculative evaluation

References

  • R. H. Halstead, "MultiLisp: A Language for Concurrent Symbolic Computation", TOPLAS, October 1985
  • Koomen, J.A.G.M., "The Interlisp Virtual Machine: A Study of its Design and its Implementation as Multilisp", Master's thesis, University of British Columbia, 1980
  • Raymond L. Bates, David Dyer, Johannes A. G. M. Koomen "Implementation of Interlisp on the VAX" pp81–87 in ACM Proceedings of the 1982 ACM Conference on LISP and Functional Programming, Pittsburgh, Pennsylvania, United States
  • Halstead, R.H.jr. The MULTILISP Language: LISP for a Multiprocessor. Conf. on 5th Generation Computers, Tokyo, 1984
  • Halstead, Robert H. Jr., "MULTILISP: a language for concurrent symbolic computation" in TOPLAS 7(4) October 1985
  • W.S. Martins "Parallel Implementations of Functional Languages" In Proceedings of the 4th Int. Workshop on the Parallel Implementation of Functional Languages, 92
  • Skillicorn, David B. and Talia, Domenico "Models and languages for parallel computation" pp123–169 in ACM Computing Surveys 30(2) June 1998

5 : Concurrent programming languages|Dynamically typed programming languages|Functional languages|Lisp programming language family|Multi-paradigm programming languages

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/12 4:29:58