Kyoto Common Lisp

Kyoto Common Lisp (KCL)は湯淺太一、萩谷昌己らによるCommon Lispの実装である。C言語で書かれ、主にUnix系OSで広く動作した。KCLはANSI Cへとコンパイルするのが特徴。

1984年のガイ・スティール・ジュニアの著書Common Lisp the Languageに記載されているCommon Lisp仕様に準拠し、京都大学数理解析研究所SIGLISP(The Special Interest Group in LISP)とのライセンス契約のもとで無償で利用可能であった。

KCLの特筆すべき点は、Common Lisp仕様標準委員会の外部で、Common Lisp仕様に基づいてゼロから実装されたことである。

当時分派していたMACLISP系Lispの共通仕様を制定することがCommon Lispの当初の目的であったため、既存のSpice LispやNIL、Lisp Machine Lisp等の処理系がCommon Lisp仕様に準拠していくという方向で進んでおり、また、処理系の一つであるSpice Lispのソースコードがパブリックドメインとして配布されていたため、既存の処理系やソースコードを利用することが殆どの状況であったが、仕様のみに基きゼロから実装したKCLは、それまで気づかれなかったCommon Lisp仕様の多くの穴や間違い、暗黙の前提を露呈させた。

Kyoto Common Lispは、1984年のCommon Lisp仕様出版とほぼ同時期に完成し、Spice LispやNIL等と並ぶ最初のCommon Lispの実装の一つである。

都市伝説

日本国内では国産ソフトウェアとしてのKCLの業績を称えんがために行き過ぎた誇張が散見される。  

主なところでは、言語の仕様はできていても、実際のコンピュータ上で動く言語処理系としてのCommon LispはKCL以前には存在していなかった、等と記述している文献や書籍がある。

派生

Kyoto Common Lispから枝分かれした系統

 Austin Kyoto Common Lisp (AKCL):  KCLへのバグ修正、性能向上、多機種サポートの数々をWilliam Schelterがまとめたもの。AKCLは様々なUnixワークステーションに移植された。
  (GCL): AKCLをGNUプロジェクトが継承したもの 
 ParGCL: MPIを用いたGCLの並列処理拡張 
  (ECL): KCLから派生しANSI Common Lisp規格への準拠、多言語対応等を特徴とする 
 ManKai Common Lisp (MKCL): ECLから派生し並列処理等に特色を持つ 
 IBUKI Common Lisp: IBUKI社がKCLをベースに商用サポート処理系として販売していた処理系
 Delphi Common Lisp: Delphi Electronic Design SystemsがKCLをベースにオブジェクト指向システム(CLOS)や、マルチプロセッシング機能を付加した商用の処理系 
 JKCl(日本語KCl): 日本語化された商用KCL
 TOP-1 Common Lisp: IBMのTOP-1(SMP機)向けにマルチプロセス周りに拡張を加えたKCLベースの処理系
 AIP-Lisp: 東芝のAIP(AIプロセッサ)向けのKCLベースの処理系
 TUPLE: KCLベースのSIMD型超並列計算のための拡張Common Lisp

脚注

出典  

 

LISP
UNIXプログラミングツール