| マルチリスプ | |
|---|---|
| パラダイム | マルチパラダイム:関数型、命令型、並行型、メタ |
| 家族 | Lisp |
| デザイン: | ロバート・H・ハルステッド・ジュニア |
| 開発者 | マサチューセッツ工科大学(MIT |
| 初登場 | 1980年 (1980年) |
| タイピングの規律 | ダイナミック、潜在的、強力 |
| 範囲 | 語彙 |
| 実装言語 | インターリスプ |
| プラットフォーム | コンサートマルチプロセッサ |
| ライセンス | 独自の |
| 影響を受けた | |
| Lisp、Scheme | |
| 影響を受けた | |
| ギャンビット、インターリスプ- VAX | |
MultiLispは関数型 プログラミング言語であり、Lisp言語およびその方言Schemeを並列計算実行と共有メモリのための構造で拡張したものです。これらの拡張は副作用を伴うため、MultiLispは非決定性となります。並列プログラミング拡張に加えて、MultiLispには独特なガベージコレクションとタスクスケジューリングアルゴリズムも備わっていました。Schemeと同様に、MultiLispはシンボリックコンピューティングに最適化されていました。一部の並列プログラミング言語とは異なり、MultiLispには副作用を引き起こしたり、明示的に並列性を導入したりするための構造が組み込まれています。
これは1980年代初頭にロバート・H・ハルステッド・ジュニアによって設計され、当時マサチューセッツ工科大学(MIT)で開発されていた32プロセッサのマルチプロセッサConcert 上での使用を想定してInterlispで実装されました。Scheme方言であるGambit [ 1]やInterlisp- VAXの開発に影響を与えました。
PCALLと未来
MultiLispはPCALLマクロで並列処理を実現しており、
(PCALL Fun A B C ...)
は以下と同等である
(Fun A B C ...)
ただし、引数 A, B, C,等は明示的に並列評価が許可されています。これにより、通常の評価順序(左から右への順次評価)が回避されます。また、 futuresと呼ばれる並列プログラミング構造も利用しています。これはforkingとlazyevaluationを組み合わせたものです。この構造を用いると、次のような式は
(cons (FUTURE A) (FUTURE B))
次のように記述できます。この記述では、式 A と式 B の評価が、 A または B の値に関する正しい情報を必要とする操作が実行されるまで、 相互にオーバーラップされるだけでなく、cons呼び出しの結果を使用する計算ともオーバーラップされます。
参照
参考文献
- ^ WikiSysop;ミカエルム;ブジュルシエ;セデンズ、ダン (2019-02-06)。 「ガンビット」。2019年4月21日に取得。
- ハルステッド, ロバート H. Jr. (1985年10月). 「MultiLisp: 並行記号計算言語」. ACM Transactions on Programming Languages and Systems . 7 (4): 501– 538. doi : 10.1145/4472.4478 . S2CID 1285424.
- クーメン、ヨハネス AGM (1980). Interlisp仮想マシン:その設計とMultilispとしての実装に関する研究(修士課程). ブリティッシュコロンビア大学.
- Bates, Raymond L.; Dyer, David; Koomen, Johannes AGM (1982年8月15~18日). 「VAXにおけるInterlispの実装」. LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming . ACM symposium on LISP and functional programming.ペンシルベニア州ピッツバーグ(アメリカ合衆国). pp. 81~ 87.
- ハルステッド、ロバート・H・ジュニア (1984). MultiLisp言語:マルチプロセッサ向けLisp . 第5世代コンピュータ会議. 東京.
- Martins, WS「関数型言語の並列実装」。関数型言語の並列実装に関する第4回国際ワークショップ議事録:92。
- Skillicorn, David B.; Talia, Domenico (1998年6月). 「並列計算のためのモデルと言語」. ACM Computing Surveys . 30 (2): 123– 169. doi : 10.1145/280277.280278 . S2CID 9308854.