LISPマシン
LISPマシンは、
プログラミング言語LISPを効率的に実行することを目的に開発された、特殊な
コンピュータです。単一ユーザー向け
ワークステーションの先駆けとも言える存在で、1980年代に複数のメーカーから販売されました。商業的には大きな成功を収めたとは言えませんが、その後の
コンピュータ技術に多大な影響を与えました。
歴史
背景
1960年代から70年代にかけて、
人工知能(AI)プログラムは非常に多くのプロセッサ時間とメモリを消費していました。当時の
コンピュータは高価で、複数のユーザーで共有するのが一般的でした。
集積回路技術の進歩により
コンピュータの小型化と低コスト化が進みましたが、AIプログラムが使用するメモリ量は、当時の研究用
コンピュータ(DEC PDP-10など)のアドレス空間を超えようとしていました。このため、研究者たちはAIプログラムの実行に最適化された新しい
コンピュータ、すなわちLISPマシンを開発しました。
オペレーティングシステムを簡素化するため、LISPマシンはシングルユーザー向けに設計されました。
初期の開発
1973年、MIT
人工知能研究所のリチャード・グリーンブラットとトム・ナイトがMIT LISPマシンプロジェクトを開始しました。このプロジェクトでは、LISPの基本的な機能がハードウェアで実行される
コンピュータを構築しました。24ビットのタグ付きアーキテクチャやインクリメンタルな
ガベージコレクションを採用しました。LISPでは変数の型が実行時に決定されるため、通常のハードウェアでは加算処理に余分な時間がかかります。しかし、LISPマシンでは型チェックを並列処理することで、加算処理を高速化しました。この並列チェック手法は、配列の境界チェックなどのメモリ管理にも応用されました。
Symbolics 3600シリーズでは、32ビットワードを36ビットワードに拡張することで、型チェックをさらに強化・自動化しました。追加のビットはデータ型保持(タグ付きアーキテクチャ)、CDRコーディング(リストのメモリ効率化)、
ガベージコレクションに使用されました。また、2つのマイクロコード命令でLISPの関数呼び出しをサポートすることで、関数呼び出しのコストを大幅に削減しました。
最初のマシンは「CONS」と呼ばれ、トム・ナイトの修士論文のテーマであったことから「ナイト・マシン」とも呼ばれました。その後、改良版の「CADR」が開発されました。CADRは
ハッカーの間で人気となり、
Emacsなどのツールが移植されました。1978年のAI会議で好評を博し、DARPAが開発資金を提供しました。
派生
1979年、ラッセル・ノフツカー(MIT AI研究所の管理者)は、LISPマシンの商業的な可能性を確信し、グリーンブラットに商業化を提案しました。グリーンブラットは商業化に抵抗がありましたが、AI研究所の雰囲気を残した会社なら良いと考え、反対はしませんでした。しかし、両者の考えは大きく異なり、最終的にAI研究所の
ハッカーたちがどちらを支持するかで決着をつけることになりました。その結果、
ハッカーたちはノフツカーを支持し、グリーンブラットは敗れました。
ノフツカーはシンボリックス社を設立し、グリーンブラットはLMI(Lisp Machine, Inc.)を設立しました。シンボリックス社は1980年から1981年にかけてCADRをLM-2として販売開始し、LMIもLMI-CADRとして販売を開始しました。その後、シンボリックス社は3600シリーズを、LMIはLMI-LAMBDAを開発しました。
テキサス・インスツルメンツ(TI)社はLMI-LAMBDAのライセンスを受け、TI Explorerを開発しました。TI Explorerには、LISPマシンと
UNIXマシンを統合したデュアルシステムもありました。
シンボリックス社は3600ファミリーと
オペレーティングシステムGeneraを開発し続け、ワンチップ化したIvoryも開発しました。LMI社はK-Machineを開発しましたが、リリース前に倒産しました。これらのマシンは、データ型チェック、CDRコーディング、並列
ガベージコレクションなどをハードウェアでサポートしており、LISPプログラムを効率的に実行できました。
MITから派生したLISPマシンは、MacLispを祖とするLisp Machine Lispを主要言語とし、オブジェクト指向拡張(Flavors)も使用していました。後に
Common Lispもサポートしました。
ゼロックスの
パロアルト研究所は、MITとは独立してInterlispやSmalltalkが動作するマシンを開発しました。
ゼロックスのマシンは、先進的な開発環境で知られており、GUIやNoteCards(初期の
ハイパーテキストアプリケーション)などが有名です。しかし、商業的には失敗し、そのグラフィカルユーザー環境や概念は、後にアップルのMacintoshなどに影響を与えました。
その他の開発
Integrated Inference Machines (IIM) がLISPマシンの試作機Inferstarを開発したほか、イギリス、フランス、ドイツでもLISPマシンの開発が行われました。
日本では、神戸大学のTAKITAC-7、理化学研究所のFLATS、大阪大学のELVISなどが試作されました。
富士通、NTT、東芝、日本電気もLISPマシン市場への参入を試みました。
青山学院大学では、8080の命令実行を横取りしてハードウェアで処理するALPS/1を開発しました。
その後・現在
RISCワークステーションの性能向上により、LISPマシンの優位性は失われました。現代では、一般のデスクトップPCがLISPマシンよりも高速にLISPを実行できます。1990年代初めには、LISPマシンを製造していた企業はほとんど姿を消しました。現在では、シンボリックスがOpen Generaと数式処理システム
Macsymaを販売しています。LISPマシンのオープンソースエミュレータの作成も試みられています。
MITは2005年にCADRのソースコードを公開しました。BitsaversのPDF文書アーカイブには、各種LISPマシンの文書が保管されています。
その他の高水準言語マシン
第五世代
コンピュータ計画では、論理推論をハードウェア化し、
Prologなどの論理
プログラミング言語の高速処理を目的としたマシンが開発されました。ニクラウス・ヴィルトのLilithプロジェクトでは、
Modula-2言語を指向した独自CPUが採用されました。近年では、
Javaに最適化された
Javaプロセッサも登場しました。
エリクソンは
Erlangに最適化したプロセッサECOMPを開発しましたが、製品化はされませんでした。
用途
LISPマシンは主に
人工知能アプリケーションで使用されましたが、
コンピュータグラフィックス、医用画像処理などでも活用されました。1980年代の主要な商用
エキスパートシステムはLISPマシンに移植されました。
技術概要
LISPマシンは、LISPソフトウェア開発のための個人用
ワークステーションとして設計され、モノクロのビットマップディスプレイ、キーボード、マウスなどを備えていました。プロセッサはコンパイルされたLISPに最適化された命令セットを持つスタックマシンで、初期にはマイクロコードで実装されていました。型チェックやディスパッチがハードウェアで実行されるため、LISPコードを効率的に実行できました。
オペレーティングシステムは
仮想記憶によって大きなアドレス空間を提供し、
ガベージコレクションを行いました。全てのコードは単一のアドレス空間を共有し、メモリ内のデータオブジェクトにはデータ型を判別するためのタグが付けられていました。
OSはLISPで書かれており、
ゼロックスはInterLisp、シンボリックス、LMI、TIはLisp Machine Lispを使用していました。後に
Common Lispもサポートされるようになりました。
後期には、TI MicroExplorer、Symbolics MacIvoryなどのように、ホスト
コンピュータに組み込むカードの形で製品化されたものもありました。
Symbolics XL1200などのLISPマシンは、グラフィックス機能を強化したものが医用画像処理や3Dアニメーションなどに使われました。
脚注
参考文献、外部リンクは省略。