Lisp
John McCarthy が発明したLisp には、Scheme やCommon Lisp をはじめとする多様な方言があり、現在でも多くの実用的な処理系が世界中で利用されている。 それらLisp 処理系の源流のひとつは、最初期のLisp 実装にさまざまな改良を施したLISP 1.5 である。本稿では、Scheme の処理系Gauche の作者である川合氏により、Gauche によるLISP 1.5 の実装を通じて“LISP 1.5 Programmer’s Manual” の世界を案内していただく。インタプリタの実装例としてのみならず、日ごろLisp 族の言語を利用している人でも現在はあまり意識することがないM式やFUNARG 問題といった初期のLisp をめぐる話題にも触れる。(編集部) 結局、何が「自然」なのかは、その問題を深く理解するまではわからないし、 その問題を深く理解するためには記述してみなければならない、 従って、「自然な記法」というのをアプリオリに定義することはできない、 というのがLisperの立ち位置のように思えます。
Lisperの戦略は、全てをなるべく単純で直交する規則で表現しておくことです。 規則が複雑になればなるほど、例外規定が多くなればなるほど、 新たな規則を導入する際に矛盾を生じる可能性が多くなるからです。 単純で、直交する規則であれば、新しい問題に対してまずそれらを 組み合わせて対応し、対応できなければ新たな直交する規則を 導入することでそれまでの体系と矛盾なく言語を拡張してゆくことができます。