LISPマシン
LISPマシンの最新ニュースをまとめて検索!
LISPマシンは、LISPを主要なプログラミング言語として効率的に実行することを目的として設計された汎用のコンピュータである。ある意味では、最初の商用シングルユーザーワークステーションと言うこともできる。1988年までに約7000台が出荷された[1]。
目次 |
[編集] 歴史
[編集] 背景
1960年代から1970年代にかけて、人工知能プログラムは当時の基準では非常に多くのプロセッサ時間とメモリ空間を消費するものだった。当時の研究機関で使われていたコンピュータは高価であるために多くのユーザーが共有して使用するのが一般的だった。1960年代から1970年代にかけての集積回路技術の進展はコンピュータのサイズとコストを小さくしていったが、AIプログラムが使用するメモリ量は一般的な当時の研究用コンピュータ(DECのPDP-10)のアドレス空間を越えようとしていた。研究者たちは、巨大な人工知能プログラムを開発し動作させるのに最適化した新しいコンピュータを設計することを検討し始め、LISPプログラミング言語の実行に最適化されたマシンを作った。そのオペレーティングシステムを単純にするために、LISPマシンはシングルユーザー用のマシンとなった。
[編集] 初期の開発
1973年、MIT AI研究所のプログラマ、リチャード・グリーンブラットとトム・ナイトは MIT LISPマシンプロジェクトを立ち上げた。これは、基本的なLISPの機能がハード的に動作するコンピュータを構築するもので、24ビットのタグ付きアーキテクチャを採用していた。また、このマシンはインクリメンタルなガベージコレクションを採用していた。LISPの変数はコンパイル時ではなく実行時に型付けされるので、普通のハードウェアでは2つの変数の加算に通常の5倍の時間がかかる(型チェックと分岐のため)。LISPマシンでは通常の加算命令で型チェックを同時に行う。型チェックが失敗した場合、並行して行っていた加算結果を捨て、再計算する。従って、多くの場合、単純な加算よりも時間がかかる。このようなチェックを並行して行う手法は、配列の境界チェックなどのメモリ管理関連でも行われている。Symbolics 3600シリーズでは、32ビットワードを 36ビットワードに拡張することで型チェックがさらに強化・自動化された[2]。これは後にさらに40ビットワード以上に強化されている(型チェックが関係しない場合、余分なビットは誤り検出訂正に使われた)。追加ビットの一部はデータ型を保持するのに使われ、その他はCDRコーディング(リストに要するメモリを約半分にする方式)の実装やガベージコレクションに使われた。さらなる改善として、2つのマイクロコード命令でLISPの関数呼び出しをサポートし、(一部のシンボリックスの実装では)関数呼び出し当たりのコストを20クロックサイクルに削減している。
最初のマシンは CONS(LISPのリスト作成演算子にちなんだ名称)と呼ばれた。その後、さらに改良された CADR(LISPの cadr 関数に由来)と呼ばれるバージョンが完成した。25台の CADR マシンがMIT内外に約5万ドルで販売された。ハッカーの間で人気となり、各種ツールが移植されていった(例えば、Emacs は 1975年に ITS から移植された)。1978年にMITで開催されたAI会議で好評を博し、DARPAはその開発に資金提供を開始した。
[編集] 派生
1979年、Russell Noftsker(AI研究所の管理者、後にシンボリックス社を創業)はLISPマシンが商業的にも将来性があると確信し、グリーンブラットにその技術の商業化の提案書を書かせた。根っからのハッカーであったグリーンブラットにとって商業化はポリシーに反することではあったが、AI研究所の雰囲気をそのまま持ち込んだような会社が作れるのではないかと考え、反対はしなかった。しかし、Noftsker の考えはそれとは全く違っていた。両者は長時間にわたって話し合ったが、合意には至らなかった。AI研究所のハッカー達の全面的な支援がなければこの事業が成り立たないのは明らかであったため、Noftsker を選ぶかグリーンブラットを選ぶかはハッカー達自身に任されることになった。
その後の議論により、研究所は2つの派閥に分裂する事態となった。1979年2月、大多数のハッカーはグリーンブラットの自己満足的な企業よりも Noftsker の考える企業の方が将来性があると判断した。グリーンブラットは負けたのである。
Noftsker の企業シンボリックス社が徐々に形を成し(彼は給料を払っていたが、作業のための建物も設備も無かった。そのため、ハッカー達がMITでシンボリックスのための作業を続ける代わりに、その成果をMIT内部には無償で提供するという約束をしていた)、グリーンブラットが消沈していたころ、CDCのコンサルタントがグリーンブラットを訪ねてきた。CDC は自然言語処理アプリケーションを西海岸のハッカー達と開発しようとしており、それにグリーンブラットのLISPマシンが使えないかとやってきたのであった。Noftskey と決着のついた話し合いから8ヶ月後のことであった。グリーンブラットは Noftskey に対抗するLISPマシン企業を始めると決めていたが、具体的には何もしていなかった。そのコンサルタント Alexander Jacobson はグリーンブラットが会社を興すのを助けることを決め、経営計画などをまとめた。この新たな企業は LMI(Lisp Machine, Inc.)と名づけられ、Jacobson 経由で CDC の資本で設立された。
このころ、シンボリックス社が事業を開始した。Noftsker がグリーンブラットに対して一年間の猶予を与えると約束したことと、ベンチャーキャピタルからの資金集めが難航したための遅れであった。しかし、AI研究所のハッカー達のうち3、4人はグリーンブラットについたものの、他の14人のハッカーがシンボリックスで働くことになったことで、シンボリックスにとっては有利となった。ただし、リチャード・ストールマンとマービン・ミンスキーの2人はどちらにも与しなかった。
シンボリックスは1980年から1981年にかけて CADR を LM-2 として販売開始し、LMI も LMI-CADR として販売開始した。シンボリックスは新たに開発していた3600ファミリをなるべく早く出荷し、LM-2 の販売を早々にやめる予定だったが、3600の開発は遅れに遅れ、結局7万ドルの LM-2 は約100台出荷された。両社は CADR ベースの第二世代の製品 Symbolics 3600 と LMI-LAMBDA を開発した。約1年後にリリースされた 3600 は、CADR のワード長を 36ビットに拡張して、アドレス空間を 28ビットとし[3]、CADR ではマイクロコードで実装されていた機能の一部をハードウェアで実装し高速化したものであった。さらにその1年後(1983年)に登場した LMI-LAMBDA はマイクロコードレベルで CADR と互換性があるが、ハードウェアは改善されていた。テキサス・インスツルメンツ(TI)社は、LMI-LAMBDA のライセンス供与を受け、互換マシン TI Explorer を開発した。
シンボリックス社は 3600 ファミリとそのオペレーティングシステム Genera を開発し続け、シンボリックスのCPUをワンチップ化した Ivory も開発した。Ivory を使ったいくつかのマシンも開発された。例えば、SunのワークステーションやMac向けの拡張ボード、スタンドアロンのワークステーション、そして組み込みシステムなどにまで利用された。TI も Explorer をワンチップ化した MicroExplorer を開発している。LMI社は CADR アーキテクチャをやめて新たに K-Machine を開発したが、リリースする前に倒産した。
これらのマシンは様々なLISPの基本関数をハードウェアでサポートしており(データ型チェック、CDRコーディング)、インクリメンタル(漸進型)ガベージコレクションもハードウェアでサポートしている。これにより、大きなLISPプログラムを非常に効率的に動作させることができた。シンボリックス社のマシンは商用のスーパーミニコンピュータ(VAXなど)と競合したが、人工知能研究以外の用途に使われることはほとんどなかった。一部の例外的な用途として、シンボリックスのLISPマシンはコンピュータグラフィックスのモデリングやアニメーションにおけるアルゴリズム研究に用いられた時期も存在する。
MITから派生したLISPマシンは、MITのMacLispを先祖とするZetaLispという方言を主要言語としていた。オペレーティングシステムもLISPで書かれていて、オブジェクト指向による拡張も使われていた。後にLISPマシンはCommon Lisp(とFlavorsやCLOS)をサポートするようになった。
[編集] ゼロックスのLISPマシン
BBNは、独自のLISPマシン Jericho を開発した。InterLispが動作するマシンであったが、市場には出されなかった。それに失望したAIグループのメンバーは同社を辞め、その多くがゼロックスのパロアルト研究所に雇われることになった。従って、ゼロックス社のパロアルト研究所が開発した InterLisp(後にCommon Lisp)やSmalltalkのような言語が動作するよう設計されたマシンは、グリーンブラットらのMITでの開発とは独立していた。しかし、ゼロックスは市場参入の時期を誤り、LMI やシンボリックスの後塵を拝することになった。Xerox 1100(ドルフィン)、Xerox 1132(ドラド)、Xerox 1108(ダンデライオン)、Xerox 1109(ダンデタイガー)、Xerox 6085(デイブレイク)などの機種がある。ゼロックスのLISPマシンのオペレーティングシステムは仮想マシンに移植され、Medleyという名前でいくつかのプラットフォーム上で動作した。ゼロックスのLISPマシンは先進的な開発環境で知られており、Altoから受け継がれたGUIとNoteCards(初期のハイパーテキストアプリケーション)などが有名である。ゼロックスのマシンは商業的には失敗だったが、そのグラフィカルユーザー環境や一部の概念は後にアップルコンピュータ社のMacintosh等さまざまなコンピュータに間接的に影響を与えた。
[編集] その他のLISPマシン
イギリスの Racal-Norsk は、ノルウェーの Norsk Data のミニコンのマイクロプログラムをLISPマシン化してシンボリックス社のZetaLispを動作させることを試みている。
日本でも富士通のFACOM α(メインフレームのコプロセッサとして動作。1978年ごろ)などのLISPマシン市場への参入を試みた例がある。また、いくつかの大学でも試作が行われている。LISPマシンの日本での影響を最もよく表しているのは第五世代コンピュータ計画であろう。このプロジェクトでは、LISPよりもさらにCPU性能を必要とするProlog系言語に最適化されたマシン(逐次推論型マシン PSI、並列推論型マシン PIM)が開発されている。また、NTTの電気通信研究所では、人工知能研究用に Elis というマシンを開発した。Elis は述語論理ベースの独自の言語に最適化されている。
パーソナルコンピュータの進化によって、ミニコンピュータやワークステーションの業者は一掃された。一般のデスクトップPCが特別なハードウェア無しで LISPマシンよりも高速にLISPを実行できるようになったため、1990年代初めにはLISPマシンを製造していた企業は商売が成り立たなくなった。ゼロックス以外ではシンボリックスは今も残っている唯一の企業で、LISPマシン環境 Open Genera と 数式処理システム Macsyma を販売している。
1990年代終盤、サン・マイクロシステムズは Java に最適化されたコンピュータを作る計画を持っていた。
[編集] 参考文献
- "LISP Machine Progress Report", Alan Bawden, Richard Greenblatt, Jack Holloway, Thomas Knight, David Moon, Daniel Weinreb, AI Lab memos, AI-444, 1977.
- "CADR", Thomas Knight, David A. Moon, Jack Holloway, Guy L. Steele. AI Lab memos, AIM-528, 1979.
- "Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode", Guy Lewis Steele, Jr., Gerald Jay Sussman, AI Lab memo, AIM-514, 1979
- David A. Moon. Chaosnet. A.I. Memo 628, Massachusetts Institute of Technology Artificial Intelligence Laboratory, June 1981.
- "Implementation of a List Processing Machine". Tom Knight, Master's thesis.
- Lisp Machine manual, 6th ed. Richard Stallman, Daniel Weinreb, David Moon. 1984.
- "Anatomy of a LISP Machine", Paul Graham, AI Expert, December 1988
- Free as in Freedom: Richard Stallman's Crusade for Free Software
[編集] 脚注
- ^ Newquist, Harvey. The Brain Makers, Sams Publishing, 1994. ISBN 0-672-30412-0
- ^ "Architecture of the Symbolics 3600", David A. Moon[1]
- ^ Moon 1985
[編集] 外部リンク
- Symbolics
- Medley
- Bitsavers にある PDF 文書群
- Lisp Machine マニュアルなど
- "Lisp Machine Inc. K-machine: The Deffenbaugh, Marshall, Powell, Willison architecture as remembered by Joe Marshall"
- "My Lisp Experiences and the Development of GNU Emacs" - リチャード・ストールマンによる Emacs、LISP、LISPマシン に関する講演を書き起こしたもの
- "If It Works, It's Not AI: A Commercial Look at Artificial Intelligence startups"
- "Symbolics, Inc.: A failure of Heterogenous engineering" - (PDF)
- CADR simulation
- L-machine simulation
- CADR LISP Machine source code released by MIT (Oct 3 2005)
- Jaap Weel's Lisp Machine Webpage
- "A Few Things I Know About LISP Machines"
- Ralf Möller's Symbolics Lisp Machine Museum
- Rainer Joswig's web page with Lisp Machine videos and screen shots
- LISPMACHINE.NET - Lisp Books and Information
- Lisp machines timeline LISPマシンの年表
- [2]
最終更新 2009年9月25日 (金) 21:53 (日時は個人設定で未設定ならばUTC)。
【LISPマシン】変更履歴


