Maclisp

MacLISPについて



MacLISPはLISPプログラミング言語の一形式で、1960年代後半にMITのProject MACにおいて開発されました。リチャード・グリーンブラットが中心となって、当時のPDP-6コンピュータ向けにその基盤を作成しました。その後、Jon L. Whiteが保守やさらなる開発を担いました。1970年代に入ると、他のLISP処理系との競合もあり、「MacLISP」という名前が定着しました。

動作環境と初期の実装



この言語はDECのPDP-6やPDP-10システム上で動作しました。初期の段階では、オペレーティングシステムとしてはITSのみでしたが、その後はPDP-10上の他のOSでも動作するようになりました。最初はPDP-10のアセンブリ言語で書かれ、後にMultics上ではPL/I|PL_Iを使用して移植されています。

MacLISPは、他の言語処理系がバージョン番号を増加させる通常のプロセスとは異なり、持続的に大幅な機能追加が行われました。これによって、ユーザーはより多くの機能を享受できるようになりました。

影響と利用



MacLISPは数式処理システムであるMacsymaの実装にも利用され、このシステムのいくつかの機能もMacLISPに取り入れられました。また、自然言語処理システムSHRDLUの開発にも寄与し、1980年代初頭には人工知能の研究において広く使用されました。さらに、PlannerやSchemeなどの他のプログラミング言語の実装でもベースとなりました。

Multics上のMacLISPは、LISPに基づくEmacsであるMultics Emacsの実装にも関わっています。これにより、MacLISPは様々な分野において影響を与えた言語として認識されています。

現在の状況



しかしながら、現代においてはMacLISPの保守はほとんど行われていません。とはいえ、PDP-10エミュレータを利用すれば、古いAIプログラムを実行することが可能です。これにより、当時のプログラムの動作を確認することができます。

データ型と実行形式



MacLISPの初期バージョンでは、限られたデータ型(CONSセル、アトム、整数、浮動小数点数など)しか存在しませんでしたが、後に配列や多倍長整数、文字列、タプルなどが追加されました。整数以外のオブジェクトはポインタとして実装され、そのデータ型はポインタが参照するアドレスによって判断されました。

プログラムはインタプリタでもコンパイラでも実行でき、コンパイラは変数スコープが制限される点を除けばインタプリタと同様の機能を持っています。1970年代中頃には、数値演算性能に優れたコンパイラが登場しました。このコンパイラによって、整数演算ではFORTRANに匹敵する性能が実現されましたが、配列やループ処理の速度ではFORTRANが依然として優れていました。

初期のMacLISPはPDP-10の18ビットアドレス空間に制限されており、さまざまな実装上の制約がありました。Multics環境ではより広いアドレス空間が利用可能でしたが、それ自体が普及していなかったため、限界がありました。人工知能で必要となるメモリや処理能力がPDP-10の限界を超えたことを受けて、LISPマシンが開発されました。このLISPマシン上で動作するLISPは、MacLISPの後継にあたります。

加えて、多くのLISP処理系が異なるコミュニティで開発された結果、最終的にはCommon Lispという統合された言語が誕生しました。MacLISPという名称はMITのProject MACに由来していますが、AppleのMacとは特に関連性はありません。

もう一度検索

【記事の利用について】

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

【リンクついて】

リンクフリーです。