この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?"CMU Common Lisp" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2020年12月)
CMU Common Lisp
作者 カーネギーメロン大学
開発元 Various
初版 1980年代初頭
最新版
21e / 2023年5月14日 (9か月前) (2023-05-14)[1]
リポジトリ ウィキデータを編集
対応OS POSIX準拠の複数のオペレーティングシステム
プラットフォーム クロスプラットフォーム
対応言語 Common Lisp
種別 コンパイラおよびインタプリタ
ライセンス パブリックドメイン
公式サイト cmucl.org
テンプレートを表示

CMU Common Lisp (CMUCL) はカーネギーメロン大学で実装が行われたCommon Lisp処理系のフリーソフトウェアである。

CMUCLはLinuxBSDなどの多くのUnix系プラットフォームで実行することができる。Windowsへの試験的な移植版もある。CMUCLからはSteel Bank Common Lispというソフトウェアが派生しており、またScieneer Common Lispという商用版もCMUCLから作られている。

開発の経緯

CMUCLは最初Spice Lispの一部として1980年ごろ、Common Lispよりも早い時期に実装されたものであった。1985年にRob MacLachlanがPythonコンパイラ(後述)を作る目的でコンパイラを書き直し、CMUCLとしてIBM PC RT、MIPSSPARCなどのUNIXワークステーションに移植した。インテルx86アーキテクチャはレジスタが少なかったため、CMUCLの初期のバージョンではサポートしていなかった。CMUCLではタグの付いたデータ型とそうでない型の区別が厳格であり、ガベージコレクションCPUレジスタの半分はタグ付けされたデータ型、もう半分はタグのないデータ型に割り当てられていることを前提に動作する。この方法はバックエンドのコンパイラ(Python という名前だが、プログラミング言語のPythonとは関係ない)が使うレジスタが不足することがある。

CMUでこのプロジェクトが中止になってからは(CMUCL のコンパイラ・ベースを使ったDylanによる実装が代わりに生き残った)、ボランティア・グループによりメンテナンスが行われている。1996年からこのグループで正規版のリリースが行われている。

同時期にインテルx86アーキテクチャへの移植も行われ、まずFreeBSDLinuxで実行できるようになった。レジスタの不足は、保守的ガベージコレクタを新しく実装することで解決された。このガベージコレクタでは、レジスタにどんな型のどんな値が載っていてもよく、またガベージコレクションや値の移動を想定していないポインタであっても扱うことができる。

コンパイラと実行環境

特徴

脚注

[脚注の使い方]
  1. ^ https://gitlab.common-lisp.net/cmucl/cmucl/blob/master/src/general-info/release-21e.md

関連項目

外部リンク