lisp2 vs lisp1 — #:g1

Posted 2008-12-31 08:46:00 GMT

Common Lispは、変数用のセルと関数用のセルが別々にあり、こういうのをlisp2と呼び、セルが分かれてないSchemeのようなタイプをlisp1と呼びますが、古いネットニュースを読んでいたら、lisp2のようにセルを分けるようになったのはいつ頃か、という一連のスレがありました。
このスレの中でlisp2の由来らしきことが書いてある議論が引用されているのですが、最初にセルを分けることにした方々も参加している議論なので面白いです。

  • LISP evaluator question
    興味深いところは、

    • 変数用のセルと関数用のセルを分けた最初の実装は、BBN-LISP(INTERLISPの前進)で、1965年頃でなないか(ピーター・ドイチュ氏)
    • BBN-LISPで変数用のセルと関数用のセルを分けたのは私。変数と関数では呼ばれ方の意味合いも変わってくるし(ダニエル・ボブロウ氏)
    • (fun ...)は固定的、(funcall fun ...)はfunが環境によって変わってくる、ということを明示できるのがイイ。(ダニエル・ボブロウ氏)
    • セルを分けたのは、大域変数が多用されるような当時の実用上では効率的で成功だったけれどセマンティクス的には誤った選択じゃなかろうか(ピーター・ドイチュ氏)
    (以上、適当な意訳)
    等々から徐々にlisp1 vs lisp2な話になってしまい収拾がつかなくなって終りますが、いづれにせよ、Lisp2の父は、ダニエル・ボブロウ氏だったかもしれないというのが興味深いです。
    ちなみに、ボブロウ氏は、CLOSの策定での中心人物でもあります。

  • comments powered by Disqus