LISPマシン

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もサポートしました。

ゼロックスの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アニメーションなどに使われました。

脚注



参考文献、外部リンクは省略。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。