
Lispマシンは、ハードウェアサポートを介して、メインのソフトウェアおよびプログラミング言語としてLispを効率的に実行するように設計された汎用コンピュータです。これらは、高水準言語コンピュータアーキテクチャの一例です。ある意味では、これらは最初の商用シングルユーザーワークステーションでした。数は控えめでしたが(1988年時点で合計7,000台程度[ 1 ] )、Lispマシンは、 Chaosnetなどのネットワーク革新や効果的なガベージコレクションなど、現在では一般的な技術を商業的に開拓しました。[ 2 ] 1980年代には、Symbolics(3600、3640、XL1200、MacIvory、その他のモデル)、Lisp Machines Incorporated(LMI Lambda)、Texas Instruments(Explorer、MicroExplorer)、Xerox(Interlisp -Dワークステーション)など、いくつかの企業がLispマシンを製造・販売しました。オペレーティングシステムは、Lisp Machine Lisp、Interlisp(ゼロックス)、そして後に一部Common Lispで記述された。
1960年代と1970年代の人工知能(AI)コンピュータプログラムは、プロセッサ時間とメモリ空間で測ると、当時としては膨大な量のコンピュータパワーを本質的に必要としていました。AI研究のパワー要件は、Lisp記号プログラミング言語によってさらに悪化しました。当時、市販のハードウェアはアセンブリ言語やFortranのようなプログラミング言語向けに設計・最適化されていました。当初、このようなコンピュータハードウェアのコストが高かったため、多くのユーザーで共有する必要がありました。 1960年代から1970年代初頭にかけて集積回路技術によってコンピュータのサイズとコストが縮小し、AIプログラムのメモリ要件が最も一般的な研究用コンピュータであるDigital Equipment Corporation(DEC)PDP-10のアドレス空間を超え始めたため、研究者たちは新しいアプローチを検討しました。それは、大規模な人工知能プログラムの開発と実行に特化して設計され、 Lisp言語のセマンティクスに合わせたコンピュータです。対話型プログラムで一貫したパフォーマンスを提供するために、これらのマシンは共有されることはほとんどなく、一度に1人のユーザー専用となることが多かったのです。[ 3 ]
1973年、マサチューセッツ工科大学(MIT)人工知能研究所(AI Lab)のプログラマー、リチャード・グリーンブラットとトーマス・ナイトは、 24ビットのタグ付きアーキテクチャで、特定の基本的なLisp操作をソフトウェアではなくハードウェアで実行するように設計されたコンピュータの構築を開始し、後にMIT Lisp Machineプロジェクトとなるプロジェクトに着手しました。このマシンは、インクリメンタル(またはArena)ガベージコレクションも実行しました。より具体的に言うと、Lisp変数はコンパイル時ではなく実行時に型付けされるため、テスト命令と分岐命令のために、2つの変数の単純な加算は従来のハードウェアでは5倍の時間がかかる可能性がありました。Lisp Machineは、より一般的な単一命令の加算と並行してテストを実行しました。同時テストが失敗した場合、結果は破棄され、再計算されました。これは多くの場合、数倍の速度向上を意味しました。この同時チェック方式は、参照時の配列の境界テストや、その他のメモリ管理の必要性(ガベージコレクションや配列だけでなく)にも使用されました。
型チェックは、従来の 32 ビットのバイト ワードがSymbolics 3600 モデルの Lisp マシン[ 4 ] で36 ビットに拡張され、最終的には 40ビット以上に拡張されたときにさらに改善され、自動化されました (通常、以下の説明で説明されない余剰ビットは誤り訂正コードに使用されました)。最初のグループの余剰ビットは型データを保持するために使用され、マシンはタグ付きアーキテクチャになりました。残りのビットは、圧縮データ表現(CDR) コーディング (通常のリンク リストの要素が圧縮されてスペースの約半分を占める) を実装するために使用され、ガベージ コレクションが桁違いに改善されたと報告されています。さらに、Lisp関数を特にサポートする 2 つのマイクロ コード命令により、Symbolics の実装によっては、関数呼び出しのコストがわずか 20 クロック サイクルにまで削減されました。
cons最初のマシンはCONSマシンと呼ばれていました( Lispのリスト構築演算子にちなんで名付けられました)。ナイトがこのテーマで修士論文を書いたことから、親しみを込めてナイトマシンと呼ばれることもよくありました。非常に好評を博しました。その後、基本的に同じアーキテクチャに基づいてCADRと呼ばれるバージョンに改良されました(これはダジャレです。Lispでは、リストの2番目の項目を返す関数は、一部の人が「cadre」という単語を発音するように、 /ˈkeɪ.dəɹ/または/ˈkɑ.dəɹ/と発音します)。基本的にプロトタイプであったCADRが約25台、MIT内外で約5万ドルで販売されました。すぐにハッキングのお気に入りのマシンとなり、最も人気のあるソフトウェアツールの多くがすぐに移植されました(たとえば、Emacsは1975年にITSから移植されました)。1978年にMITで開催されたAI会議で非常に好評を博したため、国防高等研究計画局(DARPA)が開発資金を提供し始めました。cadr

1979年、ラッセル・ノフツカーは、Lisp言語の強みと、ハードウェアアクセラレーションによってさらに向上させることができることから、Lispマシンには商業的なチャンスがあると確信していた。彼はグリーンブラットと共にこの技術の商業化を提案した。AIラボのハッカーであったグリーンブラットは、ビジネス環境に慣れておらず、ラボの非公式で生産的な雰囲気をベンチャー企業でも再現したいと考えていた。彼の考えや目標はノフツカーとは異なっていた。二人は長時間にわたって交渉したが、妥協点を見出すことができなかった。提案された企業は、AIラボのハッカー集団の全面的かつ全面的な協力があって初めて成功すると考えたノフツカーとグリーンブラットは、企業の運命は自分たちにかかっていると判断し、最終的な決定はハッカーたちに委ねることにした。
その後の選択をめぐる議論は、研究所を二つの派閥に分裂させた。1979年2月、事態は頂点に達した。ハッカーたちはノフツカーの側に立った。彼らは、商業ベンチャーファンドの支援を受けた企業の方が、グリーンブラットが提案した自立型のスタートアップよりも、Lispマシンを商業化して生き残る可能性が高いと信じていたのだ。
ノフツカーの会社であるシンボリックスが徐々に形になり始めたのは、まさにこの時期だった。ノフツカーはスタッフに給料を支払っていたものの、ハッカーたちが作業できる建物も設備も持っていなかった。彼はパトリック・ウィンストンと交渉し、シンボリックスがスタッフをMITで働かせ続ける代わりに、シンボリックスが開発したすべてのソフトウェアをMITが内部で自由に使えるようにするという取り決めをした。ノフツカーとの会議が大失敗に終わってから約8か月後、西海岸のプログラマーのグループと自然言語コンピュータアプリケーションを構築しようとしていたCDCのコンサルタントが、グループが作業するためのLispマシンを求めてグリーンブラットのもとを訪れた。グリーンブラットは独自のLispマシン会社を立ち上げることを決意していたが、何もしていなかった。コンサルタントのアレクサンダー・ジェイコブソンは、グリーンブラットが会社を立ち上げ、ジェイコブソンが切実に必要としているLispマシンを構築するには、ジェイコブソンがグリーンブラットの会社設立を後押しし、あらゆる面で支援するしかないと判断した。ジェイコブソンはグリーンブラットのために事業計画、取締役会、そしてパートナー(F・スティーブン・ワイル)を集めた。新しく設立された会社はLISP Machine, Inc.(LMI)と名付けられ、ジェイコブソンを通じてCDC(疾病対策センター)の命令によって資金提供を受けた。
この頃、Symbolics(ノフツカーの会社)が営業を開始した。ノフツカーがグリーンブラットに1年間の先行期間を与えると約束したことと、ベンチャーキャピタルの調達が大幅に遅れたことが、Symbolicsの活動を妨げていた。Symbolicsには依然として大きな利点があった。AIラボのハッカーのうち3、4人がグリーンブラットに就職した一方で、他の14人のハッカーがSymbolicsに入社したのだ。AIラボの2人、リチャード・ストールマンとマービン・ミンスキーはどちらにも採用されなかった。しかし、ストールマンはAIラボを中心としたハッカーコミュニティの衰退はSymbolicsのせいだと非難した。1982年から1983年末までの2年間、ストールマンはSymbolicsのプログラマーの成果物をクローンする作業に一人で取り組み、ラボのコンピュータを独占するのを阻止しようとした。[ 5 ]
いずれにせよ、一連の内部抗争を経て、Symbolics は 1980/1981 年に事業を開始し、CADR を LM-2 として販売したが、Lisp Machines社は LMI-CADR として販売した。Symbolics は Lisp マシンの 3600 ファミリーがすぐに出荷される予定だったため、LM-2 を多数生産するつもりはなかったが、3600 は何度も遅延し、Symbolics は最終的に 100 台の LM-2 を生産し、それぞれ 70,000 ドルで販売した。両社は、CADR をベースにした第 2 世代製品、Symbolics 3600と LMI-LAMBDA (LMI は約 200 台を販売) を開発した。1 年遅れて出荷された 3600 は、マシン ワードを 36 ビットに拡張し、アドレス空間を 28 ビットに拡張し[ 6 ]、CADR のマイクロ コードで実装された特定の一般的な機能を高速化するハードウェアを追加することで、CADR を拡張した。 3600の1年後、1983年に登場したLMI-LAMBDAはCADRと互換性があり(CADRマイクロコードを実行できた)、ハードウェアに違いがあった。テキサス・インスツルメンツ(TI)はLMI-LAMBDAの設計をライセンス供与し、独自のバリアントであるTI Explorerを製造してこの競争に加わった。LMI-LAMBDAとTI Explorerの一部は、LispプロセッサとUnixプロセッサの両方を搭載したデュアルシステムだった。TIはまた、TI Explorer向けにLisp CPUの32ビットマイクロプロセッサ版を開発した。このLispチップは、 Apple Macintosh II用のNuBusボードであるMicroExplorerにも使用された(NuBusは当初、Lispマシンで使用するためにMITで開発された)。
Symbolics は 3600 ファミリーとそのオペレーティングシステムGeneraの開発を続け、Symbolics アーキテクチャのVLSI実装である Ivory を製造しました。1987 年以降、Ivory プロセッサをベースにしたマシンがいくつか開発されました。Sun および Mac 用のボード、スタンドアロン ワークステーション、さらには組み込みシステム (I-Machine Custom LSI、32 ビット アドレス、Symbolics XL-400、UX-400、MacIvory II。1989 年に利用可能なプラットフォームは Symbolics XL-1200、MacIvory III、UX-1200、Zora、NXP1000「ピザ ボックス」) でした。Texas Instruments は Explorer をシリコンに縮小し、Apple Mac II用のカードとして MicroExplorer を提供しました。LMI は CADR アーキテクチャを放棄し、独自の K-Machine [ 7 ]を開発しましたが、マシンを市場に出す前に LMI は倒産しました。 LMIは消滅する前、Mobyスペースを使用してLAMBDA用の分散システムに取り組んでいた。[ 8 ]
これらのマシンは、様々な基本的なLisp操作(データ型テスト、CDRコーディングなど)のためのハードウェアサポートに加え、インクリメンタルガベージコレクションのためのハードウェアサポートも備えていました。大規模なLispプログラムを非常に効率的に実行できました。Symbolicsマシンは多くの商用スーパーミニコンピュータと競合する性能を持っていましたが、従来の用途には採用されませんでした。Symbolics Lispマシンは、コンピュータグラフィックス、モデリング、アニメーションといった、AI以外の市場にも販売されました。
MIT発祥のLispマシンは、MITのMaclispから派生したLisp Machine Lispと呼ばれるLisp方言を実行した。オペレーティングシステムはLispでゼロから記述され、多くの場合、オブジェクト指向拡張機能が用いられた。後に、これらのLispマシンはCommon Lispの様々なバージョン( Flavors、New Flavors、Common Lisp Object System(CLOS)を含む)もサポートするようになった。
ボルト、ベラネク、ニューマン(BBN) は、 Interlispのバージョンを実行するJericho [ 9 ]という独自の Lisp マシンを開発しました。これは市販されることはありませんでした。失望した AI グループ全体が辞職し、ほとんどが Xerox に雇われました。そのため、Xeroxパロアルト研究所は、MIT での Greenblatt 自身の開発と同時に、InterLisp (後にCommon Lisp ) を実行するように設計された独自の Lisp マシンを開発しました。同じハードウェアは、異なるソフトウェアでSmalltalkマシンやXerox Starオフィス システムとしても使用されました。これらには、Xerox 1100、Dolphin (1979 年)、Xerox 1132、Dorado、Xerox 1108、Dandelion (1981 年)、Xerox 1109、Dandetiger、Xerox 1186/6085、Daybreakが含まれます。[ 10 ] Xerox Lisp マシンのオペレーティングシステムも仮想マシンに移植され、Medleyという製品として複数のプラットフォームで利用可能になっています。Xerox マシンは、高度な開発環境 (InterLisp-D)、ROOMS ウィンドウマネージャ、初期のグラフィカルユーザーインターフェイス、NoteCards (最初のハイパーテキストアプリケーションの 1 つ) などの斬新なアプリケーションでよく知られていました。
ゼロックスはまた、「ゼロックス共通Lispプロセッサ」を使用してRISC(縮小命令セットコンピューティング)に基づくLispマシンを開発し、1987年までに市場に投入する計画を立てていたが[ 11 ] 、それは実現しなかった。
1980年代半ば、Integrated Inference Machines (IIM) は Inferstar という Lisp マシンのプロトタイプを製作した。[ 12 ]
1984年から1985年にかけて、 RacalとNorsk Dataの合弁子会社である英国企業Racal-Norskは、Norsk DataのND-500スーパーミニをCADRソフトウェアを実行するマイクロコードLispマシンとして再利用しようと試みた。そのソフトウェアとは、知識処理システム(KPS)である。[ 13 ]
日本のメーカーはLispマシン市場への参入を何度か試みており、富士通のFacom-alpha [ 14 ]メインフレームコプロセッサ、NTTのElis [ 15 ] [ 16 ] 、東芝のAIプロセッサ(AIP)[ 17 ]、NECのLIME [ 18 ]などがある。大学の研究活動では、神戸大学のTAKITAC-7 [ 19 ] 、理化学研究所のFLATS [ 20 ]、大阪大学のEVLIS [ 21 ]など、動作するプロトタイプがいくつか開発された。
フランスでは、トゥールーズ・ポール・サバティエ大学のM3L [ 22 ]と、後にMAIA [ 23 ]という2つのLispマシンプロジェクトが誕生した。
ドイツでは、シーメンスがRISCベースのLispコプロセッサCOLIBRIを設計した。[ 24 ] [ 25 ] [ 26 ] [ 27 ]
AIの冬の到来と、ミニコンピュータやワークステーションメーカーを一掃するマイクロコンピュータ革命の初期の始まりとともに、より安価なデスクトップPCは、専用ハードウェアを使用することなく、Lispマシンよりもさらに高速にLispプログラムを実行できるようになりました。高収益のハードウェアビジネスが消滅したことで、ほとんどのLispマシンメーカーは90年代初頭までに倒産し、Lucid Inc.のようなソフトウェアベースの企業、あるいは崩壊を避けるためにソフトウェアとサービスに転換したハードウェアメーカーだけが残りました。2015年1月現在 XeroxとTIの他に、Symbolicsは現在も稼働している唯一のLispマシン企業であり、Open Genera Lispマシンソフトウェア環境とMacsymaコンピュータ代数システムを販売している。[ 28 ] [ 29 ]
さまざまな Lisp マシン用のオープンソース エミュレータを作成する試みがいくつか行われてきました。CADR エミュレーション[ 30 ] 、 Symbolics L Lisp マシン エミュレーション[ 31 ] 、 E3 プロジェクト (TI Explorer II エミュレーション) [ 32 ]、Meroko (TI Explorer I) [ 33 ] 、および Nevermore (TI Explorer I) [ 34 ]などです。2005年 10 月 3 日、MIT は CADR Lisp マシンのソース コードをオープンソースとして公開しました。[ 35 ]
2014年9月、PicoLispの開発者であるAlexander Burgerは、ハードウェア上でPicoLispを実装したPilMCUを発表した。[ 36 ]
BitsaversのPDFドキュメントアーカイブ[ 37 ]には、Symbolics Lispマシン[ 38 ] 、 TI Explorer [ 39 ]およびMicroExplorer [ 40 ] Lispマシン、Xerox Interlisp-D Lispマシン[ 41 ]の広範なドキュメントのPDF版があります。
Lispマシンが利用された分野は、主に人工知能アプリケーションという広範な分野であったが、コンピュータグラフィックス、医用画像処理など、その他多くの分野にも及んだ。
80年代の主な商用エキスパートシステムとしては、IntellicorpのKnowledge Engineering Environment (KEE)、The Carnegie Group Inc.のKnowledge Craft、Inference CorporationのART ( Automated Reasoning Tool )などがあった。 [ 42 ]
当初、LispマシンはLispによるソフトウェア開発のための個人用ワークステーションとして設計されました。これらは1人用で、マルチユーザーモードは提供されていませんでした。マシンには、大型の白黒ビットマップディスプレイ、キーボードとマウス、ネットワークアダプタ、ローカルハードディスク、1MB以上のRAM、シリアルインターフェース、拡張カード用のローカルバスが備えられていました。カラーグラフィックカード、テープドライブ、レーザープリンタはオプションでした。
プロセッサはLispを直接実行するのではなく、コンパイルされたLisp用に最適化された命令セットを備えたスタックマシンでした。初期のLispマシンは、命令セットを提供するためにマイクロコードを使用していました。いくつかの演算では、実行時にハードウェアで型チェックとディスパッチが行われました。たとえば、1つの加算演算は、さまざまな数値型(整数、浮動小数点数、有理数、複素数)で使用できました。その結果、Lispコードの非常にコンパクトなコンパイル表現が得られました。
次の例では、述語がを返すリストの要素の数をカウントする関数を使用していますtrue。
( defun example-count ( predicate list ) ( let (( count 0 )) ( dolist ( i list count ) ( when ( funcall predicate i ) ( incf count )))))上記関数の逆アセンブルされたマシンコード(Symbolics社製Ivoryマイクロプロセッサ用):
コマンド: ( disassemble ( compile #'example-count))0エントリ: 2必須、0オプション;述語とリストを作成2 PUSH 0 ;カウントを作成3 PUSH FP | 3 ;リスト4 PUSH NIL ;I を作成5 BRANCH 15 6 SET - TO - CDR - PUSH - CAR FP | 5 7 SET - SP - TO - ADDRESS - SAVE - TOS SP |- 1 10 START - CALL FP | 2 ;述語11 PUSH FP | 6 ;I 12 FINISH - CALL - 1 - VALUE 13 BRANCH - FALSE 15 14 INCREMENT FP | 4 ;カウント15 ENDP FP | 5 16分岐- FALSE 6 17 SET - SP - TO - ADDRESS SP |- 2 20 RETURN - SINGLE - STACKオペレーティングシステムは仮想メモリを使用して広いアドレス空間を提供しました。メモリ管理はガベージコレクションによって行われました。すべてのコードは単一のアドレス空間を共有しました。すべてのデータオブジェクトはメモリ内にタグ付きで格納され、実行時に型を判別できるようにしました。複数の実行スレッドがサポートされ、これらはプロセスと呼ばれました。すべてのプロセスは単一のアドレス空間で実行されました。
オペレーティングシステムソフトウェアはすべてLispで記述されていました。ゼロックスはInterlispを使用し、シンボリクス、LMI、TIはLisp Machine Lisp(MacLispの派生言語)を使用していました。Common Lispの登場に伴い、Lispマシン上でCommon Lispがサポートされるようになり、一部のシステムソフトウェアはCommon Lispに移植されるか、後にCommon Lispで記述されました。
後期のLispマシン(TI MicroExplorer、Symbolics MacIvory、Symbolics UX400/1200など)は、もはや完全なワークステーションではなく、ホストコンピュータ(Apple Macintosh II、Sun-3、Sun-4など)に組み込まれるように設計されたボードでした。
Symbolics XL1200などの一部のLispマシンは、専用のグラフィックボードを使用して高度なグラフィック機能を備えていました。これらのマシンは、医療画像処理、3Dアニメーション、CADなどの分野で使用されました。
Daybreak という愛称で呼ばれる Xerox 1186 は、比較的低価格でいくつかのユニークで強力な機能を提供します。 [...] 1186 は、Xerox の以前のマシンである 1108、または Dandelion に非常によく似ています。