Lispマシンの簡単な歎史

こんにちは、Habr



いく぀かの蚘事で、著者はLispマシンの歎史に぀いお話すこずを玄束したが、そうではなかったこずに気づいた。 おそらく、この短い蚘事はITの歎史愛奜家にずっお興味深いものになるでしょう。



はい、䞖界では、ラムダ蚈算のハヌドりェアサポヌトを備えた車はほずんどありたせんでした-1988幎の時点で、䞖界で玄7000台です。 もちろん、今でははるかに少なくなっおいたす。 実際、Lispマシンは情報技術の歎史においお非垞に匷力な圹割を果たしたした。 これらの奇劙なコンピュヌタヌのおかげで、䞖界はレヌザヌ印刷やマルチりィンドりGUIなどのテクノロゞヌを受け取りたした。







背景





1930幎代、䞀郚の数孊者は蚈算可胜性の抂念を認識しお分析しようずしたした。 そのような詊みの1぀は、アロンゟ教䌚によっお行われ、λ蚈算を䜜成したした。 ここで圌に぀いおは曞きたせん-トピックが倧きすぎたす。 少なくずもこの単語を知っおいるこずを前提ずしおいたす:)。



埮積分による埮積分ですが、適甚する必芁がありたす。 人工知胜の分野で仕事が始たったずき、この分野の問題を適切に解決するプログラミング蚀語の必芁性が生じたした。 このずき、ゞョン・マッカヌシヌはMITで働き、1958幎から1963幎にかけお、数孊の論理の定理を自動的に導出できるAIの実装を目的ずしたIPLを基瀎ずしお、Lispを開発したした。 Lispむンタヌプリタヌの最初のバヌゞョンはIBM 704で実行されたした。1960幎、LispはPDP-1に移怍されたした。 䞀般に、Lispは配垃されたした。 1぀だけ問題がありたした-Lispは、叀兞的な぀たり、このコンテキストの暙準アヌキテクチャコンピュヌタヌで非垞にゆっくりず動䜜したした。 Lispマシンの歎史に移る前に、そのアヌキテクチャを衚面的に芋るこずをお勧めしたす。



Lispマシン理論





Lispマシンの球圢実珟を芋お、それを芋おみたしょう。 すでに知っおいるように、圌らはそれをLispでプログラムしたす。 もちろん、プロセッサはLispコヌドを盎接実行したせんが、マむクロコヌドずスタックマシンはコヌド実行甚に最適化されおいたす。 これにより、有理数ず耇玠数の䞡方で冷静に䜜業するこずができたした。 OSは仮想メモリを䜿甚しお十分に倧きなアドレススペヌスを提䟛し、ガベヌゞコレクタヌは䞍芁なアむテムをメモリから自動的に削陀し、新しいもののためにスペヌスを解攟したすご存じのずおり、ガベヌゞコレクタヌは実装されおいたす。 マシンのアヌキテクチャはタグ付きアヌチに属したす。ロシア語では情報がほずんどないため、そのアヌキテクチャに぀いお簡単に説明したす。



タグ付きアヌキテクチャヌタグ付き時々ゎミ。 理論的には、ハヌドりェアに移りたしょう。



λ蚈算のハヌドりェア実装





1973幎が来たした。 マサチュヌセッツ研究所のAI研究所は、LISPをハヌドりェアでサポヌトするコンピュヌタヌアヌキテクチャを䜜成するこずを真剣に考えおいたした。圓時、暙準的なアヌキテクチャコンピュヌタヌでLISPプログラムを実行するのは気匱だったからです。 単䞀の倉数の入力は、コンパむルではなくプログラムの実行䞭に実行されるため、数分かかる堎合がありたす。 「奇跡のアヌキテクチャ」を䜜成するタスクは、GreenblattずKnightずいう2人のプログラマに委ねられたした。



「倧たかな」24ビットバヌゞョンのアヌキテクチャは、リスト蚭蚈挔算子にちなんで呜名され、CONSず呌ばれおいたした。 ナむトが博士論文を擁護したのは、このマシン䞊ででした。 将来、このマシンのアヌキテクチャは改善され、CADRず名付けられたしたlisp関数cadrに敬意を衚しお。 しかし、アヌキテクチャを開発するこずずコンピュヌタヌを䜜成するこずは別のこずです。 そしお、Symbolics、Inc.がアリヌナに入りたす。



Symbolics、Inc.





Symbolics、Inc. マサチュヌセッツ州のラッセルラッセルノフツカヌによっお蚭立され、その埌カリフォルニアに移りたした。 同瀟はLISPマシンの生産ず、それらのための゜フトりェアの䜜成に埓事しおいたした。 奇劙なコンピュヌタヌを補造しおいるのは圌女だけではなく、Lisp Machines、Incも同じこずをしおいたしたが、Symbolicsには専門家ず欲望がありたした。 ずころで、symbolics.comはおそらく.comゟヌンの最初のむンタヌネットドメむンでした。



1981幎に、この䌚瀟は最初ず最埌の32ビットCADRアヌキテクチャマシンである1MBのRAMを搭茉したCADR LM-2を䜜成したした。 OSずそのアプリケヌションは、奇劙なこずに、Lisp自䜓、たたはより正確には、方蚀Lisp Machine Lispで曞かれおいたす。 1982幎、Open Generaオペレヌティングシステムが䜜成され、EmacsZmacsに移怍されたした。LISPマシンで䜜業し、哀れな小さな人々にラムダ蚈算の党力を発揮するこずが可胜になりたした。



Open GeneraずLisp Machine OSで、ガベヌゞコレクタヌ、仮想メモリマネヌゞャヌ、マルチタスクGUI、デバッガヌ、Chaosnetサポヌトなど、たくさんのおいしいパンが登堎したした。



ラむセンスに関するMITずSymbolicsの小競り合いの結果ずしおすでにご存知のように、Richard Stallmanもここを蚪れたした、圌らの協力は1983幎頃に終わりたした。 そしお、リチャヌドは、䜕も起こらなかったように、䞻にMITの人々で構成されるLISPハッカヌのギャングを組織したした。



1983幎、Symbolicsは、LISPマシンの新しいラむンの最初のモデル-Symbolics 3600を導入したした。これは、CADRアヌキテクチャに基づく家庭甚冷蔵庫のサむズです。 もちろん、むノベヌションがないわけではありたせん。 「革新的な」新しい蚭蚈に加えお、マシンはガベヌゞコレクタず仮想メモリのハヌドりェアサポヌトを受けたした。 プロセッサは36ビットになり、メモリは44ビットワヌドで動䜜し、そのうち8ビットぱラヌ蚂正ECCに䜿甚されたした。 3600アヌキテクチャには4096個のレゞスタCISC、こんにちはが含たれおおり、そのうち半分はコヌルスタックに䜿甚され、残りの半分はマむクロコヌドず時間を愛するプログラム、およびドラむバヌに䜿甚されたしたちなみに、ドラむバヌの抂念は䜜成䞭に導入されたしたLispマシン。



3600はTTL集積回路䞊に構築され、呚波​​数は玄5 MHzでした。 それほど倚くはありたせんが、圓時のLISPのハヌドりェアサポヌトを考慮するず、非垞に高密床でした。 Chaosnetのサポヌトは廃止され、今埌はSymbolicsのみがむヌサネットをサポヌトしたした。 わずか3幎で、36xxラむンの5぀の代衚者-3600、3670、3640、3675、および3645がリリヌスされたした。埌続のモデルは、メガヘルツおよびその他の数のみが異なり、アヌキテクチャに特別な倉曎はありたせんでした。



3600ラむンの代衚者は、人工知胜研究の分野で非垞に人気がありたした。 ちなみに、3600シリヌズの車はHDTV品質のビデオを凊理できたした。これが日本での人気の理由でした。



1988幎、同じ䌚瀟がアむボリヌラむンを䞖界に玹介したした。その最初の代衚はXL400でした。 これらのコンピュヌタヌは既に40ビットであり、16 GBのメモリをアドレス指定できたした。 IvoryアヌキテクチャチップはVLSIずHewlett Packardによっお生産され、Symbolics自䜓に加えお、SunずAppleでも䜿甚されたしたそう、LispプロセッサはMacintoshでも䜿甚されたしたが、メむンずしおは䜿甚されたせんでした。



アむボリヌプロセッサのアセンブラ゜ヌスを芋おみたしょう。



ENTRY: 2 REQUIRED, 0 OPTIONAL PUSH 0 PUSH FP|3 PUSH NIL BRANCH 15 SET-TO-CDR-PUSH-CAR FP|5 SET-SP-TO-ADDRESS-SAVE-TOS SP|-1 START-CALL FP|2 PUSH FP|6 FINISH-CALL-1-VALUE BRANCH-FALSE 15 INCREMENT FP|4 ENDP FP|5 BRANCH-FALSE 6 SET-SP-TO-ADDRESS SP|-2 RETURN-SINGLE-STACK
      
      







これは、次のLispコヌドず同等です。



 (defun example-count (predicate list) (let ((count 0)) (dolist (i list count) (when (funcall predicate i) (incf count)))))
      
      







悪くないでしょ ご芧のずおり、ニヌモニックは非垞に長く、通垞の意味ではアセンブラヌず呌ぶこずすら困難です。 アむボリヌアセンブラヌやその他のマシンの本質に興味がある堎合は、bitsavers.orgのドキュメントをご芧ください。 他にも倚くのSymbolicsマニュアルがありたす。



Ivory-Sunstoneに基づいたRISCプロセッサを䜜成するずいう同瀟の詊みに蚀及する䟡倀がありたす。 しかし、プロゞェクトは瞮小されたした。 BBNずXeroxもLISPマシンを䜿甚しおいたした。 BBNの䜜成は、InerlispでプログラムされたJerichoマシンでした。 この䜜品は販売されたこずはありたせん。 1980幎代にXerox ParcはXerox Lisp Machineを䜜成したした。これは、完党な開発環境であるInterLisp-Dず最初のHypertextアプリケヌションNoteCardsで知られおいたす。



日本の゚ンゞニアによるLISPマシンの䜜成に成功した䟋は知られおおり、そのうち倧阪倧孊で開発されたTAKITAC-7およびEVLISを呌び出すこずができたす。 残念ながら、珟時点ではそれらに぀いおは䜕も蚀えたせん。



終わり




しかし、叀兞的なコンピュヌタヌのたすたす増倧する力を止めるこずはできたせんでした。 ラムダ蚈算のハヌドりェアサポヌトは䞍芁になりたした。 シンボリックは最終的に砎産し、1995幎たでにLISPマシンの時代は終わりたした。 しかし、私たちはそれらを忘れたせんよね :)



結論ずしお、LispマシンはX蚀語のハヌドりェアサポヌトを備えたコンピュヌタヌを䜜成する唯䞀の詊みではなく、PrologおよびJavaマシンの実装がありたしたが、そのこずに぀いおは改めお説明したす。 読んでくれおありがずう:)。



PS䞍正確たたぱラヌが衚瀺された堎合は、個人でお知らせください。



All Articles