#:g1: レトロLisp探検: INTERLISP

Posted 2016-12-08 16:22:41 GMT

方言の系統

INTERLISP

主要開発者

Danny Bobrow、Warren Teitelman

登場時期

特徴

元祖IDEともいうべき開発環境

後続への影響

直系の子孫は途絶えたものの言語機能の一部は後続のLispに受け継がれる。 - Common LispのLOOP、デバッガー等

また対話性がコマンドシェルの機能として受け継がれたものもある。 - cshのコマンドヒストリー実行機能等

概要

INTERLISPは、MACLISPと1970年代から80年代にかけてLISP界の人気を二分した方言です。
しかし、1984年にMACLISP系がまとめられたCommon Lispが登場すると、Lisp界をCommon Lispが席巻してしまい、その後、1990年代中盤には仮想LispマシンのMedleyを最後にINTERLISPの流れはほぼ途絶えてしまうことになりました。
しかし、LispにおいてINTERLISPが開拓したものは沢山あります。

Common Lispは乱立する方言を統一するため開発された、という説が広まっていると思いますが、実際の所は、当初DARPAの予算を獲得するためにMIT等人工知能系研究機関で広く利用されていたMACLISP系をまとめようというものでした(DARPAは派閥に分かれて似たようなものを作っている所にそれぞれ投資するようなことはしたくなかったため)。

このためINTERLISP色はCommon Lispには殆ど感じられない結果になりましたが、LOOPやデバッガ、対話機能、イメージ指向等にその影響は残っています。

歴史

INTERLISP系統はPDP-1上のLISPが発展したSDS 940 LISPを元に改良を重ね、TOPS-10もサポートするようになりBBN-LISPとして知られるようになります。

BBN-LISPは初期から構造エディタをLispに内蔵していましたが、対話的開発環境の探求が推し進められ、Warren Teitelma氏を中心に高度な対話機能が研究/実装され、CLISP(Conversational Lisp)という形で世に発表されます。

DWIM(Do What I Mean)機能というスペル修正機能や、それを応用した中置記法の仕組み、BREAKパッケージに代表されるプログラムを途中で止めて観察/デバッグする等々、全てLisp内で対話的に実行できる環境は本当に画期的だったようです。

BBN-LISPはその後Xeroxに移り、INTERLISPとなり、1980年代にはXeroxのLispマシンである通称Dマシン上で稼動するInterlisp-Dへと進化します。

しかし、その後のCommon Lispの擡頭によりInterlisp-DでもCommon LispをサポートするようになるなどINTERLISP方言は急激に下火になって行きます。

体験

PDP-10上で稼動する、INTERLISP-10は、TOPS-10のエミュレータ上で動かすことができます。(simh、KLH等)。公開TOPS-20サイトを利用してみるのも良いでしょう。

また、Interlisp-Dは、仮想Lispマシン環境のMedleyが古いLinux上で動かすことが可能です。

文献を読むだけでなく、実際に構造エディタを利用してコードを書いてみると色々なことが発見できますのでお勧めです!

まとめ

INTERLISPについては非常に多くのトピックがあるので、纏めるのが非常に難しいため適当に端折りました。
言語そのもの、開発環境、文化etcは、MACLISP系統と同じ位色々なことがあるのですが、INTERLISP系でレトロコンピューティング的な探索をしている方は少ないようです(残念ながら私は一人も知りません)。

INTERLISPについては、去年エディタを調べていた時に色々書いていたようなので、ご興味あれば、こちらもどうぞ。

他にも散発的に適当なことを書いてます

日本語で読める書籍としては、統合化プログラミング環境―Smalltalk‐80とInterlisp‐Dソフトウェア開発支援環境―UNIXからAIアプローチまでが割とまとまっているかなと思います(特に前者)

参考文献


HTML generated by 3bmd in LispWorks 7.0.0

comments powered by Disqus