Loading...

LISPの起源

Original

2001年5月

(この記事は、McCarthyが発見したものを正確に理解するために書きました。Lispをプログラミングするには、この情報は必要ありませんが、Lispの本質、つまりその起源とセマンティックコアを理解したい人には役立つはずです。Lispにはそのようなコアがあるのは、Lispの特徴の1つであり、他の言語とは異なる理由でもあります。)

1960年、ジョン・マッカーシーは、プログラミングに関して、ユークリッドが幾何学に対してしたのと同様のことを行う驚くべき論文を発表しました。彼は、単純な演算子と関数の表記法を与えれば、完全なプログラミング言語を構築できることを示しました。 彼はこの言語をLisp、つまり「List Processing」と呼びました。なぜなら、彼の重要なアイデアの1つは、コードとデータの両方に、リストと呼ばれる単純なデータ構造を使うことでした。

マッカーシーが発見したことを理解することは重要です。それは、コンピューターの歴史における重要な出来事としてだけでなく、私たちの時代におけるプログラミングの方向性を示す模範としても重要です。私の考えでは、これまでのプログラミングには、C言語モデルとLispモデルという2つの明確で一貫したモデルがありました。これらの2つは高地のようなものですが、その間は低湿地のようになっています。コンピューターがより強力になるにつれ、新しい言語の開発は着実にLispモデルに向かっています。過去20年間の新しいプログラミング言語の一般的な作り方は、Cモデルのコンピューティングに、ランタイムタイピングやガベージコレクションなど、Lispモデルの一部を追加していくというものです。

この記事では、マッカーシーが発見したことを可能な限り簡単に説明しようと思います。目的は、40年前に誰かが見つけた興味深い理論的結果を学ぶことだけではなく、言語がどの方向に向かっているかを示すことです。Lispの unusual な点、つまりLispの定義的な特徴は、それ自身で書くことができるということです。マッカーシーがこれによって何を意味したのかを理解するために、彼の数学的表記法を実行中のCommon Lispコードに翻訳しながら、彼の足跡を辿っていきます。