멀티리스프

MultiLisp
멀티리스프
패러다임멀티패러다임: 기능, 필수, 동시, 메타
가족리스프
설계자로버트 H. 할스테드 주니어
개발자매사추세츠 공과대학(MIT)
처음 등장한1980년; 42년 전(1980년)
타이핑 분야동적, 잠재성, 강성
범위어휘
구현 언어인터리스크
플랫폼콘서트 멀티프로세서
면허증.독자 사양
영향을 받다
리스프, 스킴
영향받은
Gambit, Interlisp-VAX

MultiLisp기능성 프로그래밍 언어이며, Lisp 및 Lisp의 방언이며 병렬 컴퓨팅 실행 및 공유 메모리를 위한 구성으로 확장됩니다.이러한 확장에는 부작용이 수반되어 MultiLisp를 비확정적으로 만듭니다.병렬 프로그래밍 확장과 더불어 MultiLisp는 몇 가지 특이한 가비지 수집 및 작업 스케줄링 알고리즘을 가지고 있었다.Scheme와 마찬가지로 MultiLisp는 심볼릭 컴퓨팅에 최적화되어 있습니다.일부 병렬 프로그래밍 언어와 달리, MultiLisp는 부작용을 일으키고 병렬 처리를 명시적으로 도입하기 위한 구조를 통합했습니다.

1980년대 초에 32프로세서 Concert 멀티프로세서에 사용하기 위해 Robert H. Halstead Jr.에 의해 설계되었으며 MIT(Massachusetts Institute of Technology)에서 개발되어 Interlisp에서 구현되었습니다.그것은 스킴 방언 갬빗과 [1]인터리셉-VAX의 발전에 영향을 미쳤다.

PCall과 미래

MultiLisp는 PCALL 매크로와의 병렬 처리를 실현합니다.

(PCALL Fun A B C ...)

와 동등하다

(Fun A B C ...)

논거가 그 논거가 A, B, C,등은 분명히 병렬로 평가될 수 있다.이는 순차적이고 왼쪽에서 오른쪽으로 평가되는 일반적인 평가 순서를 우회한다.또한 포킹과 유사한 퓨처스라고 불리는 병렬 프로그래밍 구조를 느린 평가와 함께 사용합니다.이 구문을 사용하여 다음과 같은 식을 사용할 수 있습니다.

(cons (FUTURE A) (FUTURE B))

는 A 또는 B의 값에 대한 정확한 정보를 필요로 하는 연산이 실행될 때까지 A와 B의 식을 서로 평가할 뿐만 아니라 Cons 콜의 결과를 사용하는 계산과 중복시킬 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ WikiSysop; Mikaelm; Bjlucier; Thedens, Dan (2019-02-06). "Gambit". Retrieved 2019-04-21.
  • Halstead, Robert H. Jr. (October 1985). "MultiLisp: A Language for Concurrent Symbolic Computation". ACM Transactions on Programming Languages and Systems. 7 (4): 501–538. doi:10.1145/4472.4478. S2CID 1285424.
  • Koomen, Johannes A. G. M. (1980). The Interlisp Virtual Machine: A Study of its Design and its Implementation as Multilisp (MSc). University of British Columbia.
  • Bates, Raymond L.; Dyer, David; Koomen, Johannes A. G. M. (15–18 August 1982). "Implementation of Interlisp on the VAX". LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming. ACM symposium on LISP and functional programming. Pittsburgh, Pennsylvania, United States. pp. 81–87.
  • Halstead, Robert H. Jr. (1984). The MultiLisp Language: Lisp for a Multiprocessor. Conference on 5th Generation Computers. Tokyo, Japan.
  • Martins, W.S. "Parallel Implementations of Functional Languages". Proceedings of the 4th Int. Workshop on the Parallel Implementation of Functional Languages: 92.
  • Skillicorn, David B.; Talia, Domenico (June 1998). "Models and languages for parallel computation". ACM Computing Surveys. 30 (2): 123–169. doi:10.1145/280277.280278. S2CID 9308854.