2010/08/20

「Scheme」という名の由来

ここだけ引用してもアレですが。。
英語でPlannerはプランする何かです。Conniverはスニーキー(こそこそする、卑劣)なプランナーです。だから、もっとスニーキーなプランナーを何と呼ぼうか。そりゃ、スキーマー(陰謀家、策略家)だ。それで、Schemerとつけたのです。

残念ながら、我々は60年代に設計されたOSを使っていたので、すべてのファイル名は6文字以下でなければなりませんでした。それで、ファイル名SCHEMERは最初の6文字だけに切り捨てられました。

概略

MIT に Carl Hewitt と Gerry Sussman という聡明な二人が競い合ってプログラミング言語を実装していた。

Carl Hewitt が Planner というとても複雑なプログラミング言語を設計した。
Planner が複雑過ぎて実装できなかったため、Planner の小型版である Microplanner が実装された。
それでも複雑だったため、Gerry Sussman が Microplanner を改良した Conniver という言語を実装した。

一方 Carl Hewitt は、Conniver より良い Plasma という言語を実装した。
Plasma は Smalltalk などから影響を受けた、アクタモデルを採用したオブジェクト指向言語だった。Plasma にはコンティニュエーション(継続)の概念があった。

Plasma は難し過ぎて、Gerry Sussman と Guy L. Steele Jr には理解できなかった。
二人は、不要な機能を取り去ったとても小さな Plasma のインタプリタを Lisp で書いた。
Gerry Sussman はこのころレキシカルスコーピングに興味があったのでそれを採用した。

Sussmanと私は、小さなインタプリタを書きました。言語を理解するもっとも簡単な方法はそのインタプリタを書くことです。インタプリタを書くもっともよい言語はLispです。

Planner, Conniver ときたので、Schemer と名付けることにした。
OS の制限でファイル名が6文字までしか許されなかったので6文字以降を切り捨てた Scheme になった。

余談

Gerry Sussman は SICP の中の人ですね。
Guy L. Steele Jr は Common Lisp や Java の仕様策定なんかもやった人ですね。



0 件のコメント:

コメントを投稿