Loading...

LISPのルーツ

Original

2001年5月

(私は、McCarthy が発見したことを自分自身で正確に理解するためにこの記事を書きました。Lisp でプログラミングするためにこのことを知る必要はありませんが、Lisp の本質を理解したい人にとっては役立つはずです。Lisp の起源と意味の核の両方の意味で。Lisp にそのような核があるという事実は、Lisp の際立った特徴の 1 つであり、他の言語とは異なり、Lisp に方言がある理由です。)

1960 年、ジョン マッカーシーは、ユークリッドが幾何学に対して行ったことと同じようなことをプログラミングに対して行った注目すべき論文を発表しました。彼は、いくつかの単純な演算子と関数の表記法があれば、プログラミング言語全体を構築できることを示しました。彼はこの言語を「リスト処理」の頭文字をとって Lisp と名付けました。彼の主要なアイデアの 1 つが、コードとデータの両方にリストと呼ばれる単純なデータ構造を使用するというものだったからです。

マッカーシーの発見は、コンピュータの歴史における画期的な出来事としてだけでなく、現代のプログラミングの傾向を示すモデルとして理解する価値があります。これまでのところ、プログラミングには非常に明確で一貫性のあるモデルが 2 つあるように思われます。C モデルと Lisp モデルです。この 2 つは高台にあり、その間には沼地のような低地があるように見えます。コンピュータが強力になるにつれて、開発されている新しい言語は着実に Lisp モデルへと移行してきました。過去 20 年間、新しいプログラミング言語の一般的なレシピは、C モデルのコンピューティングを採用し、ランタイム型付けやガベージ コレクションなど、Lisp モデルから取得した部分を断片的に追加するというものでした。

この記事では、マッカーシーが発見したことをできるだけ簡単に説明しようと思います。ポイントは、40 年前に誰かが解明した興味深い理論的結果について学ぶことだけではなく、言語がどこに向かっているかを示すことです。Lisp の珍しい点 (実際、Lisp の特徴) は、それ自体で記述できることです。マッカーシーがこれによって何を意味していたかを理解するために、彼の数学的表記法を Common Lisp コードに翻訳して、彼の足跡をたどってみましょう。