この項目では、プログラミング言語について説明しています。その他の語句については「スキーム (曖昧さ回避)」、「スキーマ (曖昧さ回避)」をご覧ください。
SchemeSchemeのロゴ
パラダイム関数型プログラミング、手続き型プログラミング、メタプログラミング、命令型プログラミング
Scheme(スキーム)はコンピュータ・プログラミング言語 LISPの方言のひとつで、静的スコープなどが特徴である。仕様(2017年現在、改7版まで存在する)を指すこともあれば、実装を指すこともある。Schemeにより、LISP方言に静的スコープが広められた。 Schemeは、MIT AIラボにて、ジェラルド・ジェイ・サスマンとガイ・スティール・ジュニアによって1975年頃に基本的な設計がなされた。動機は、カール・ヒューイットの提案によるエレガントな並行計算モデル「アクター」と、同じくその言語のPLASMA(Planner-73)を理解するためであった。 静的スコープ(ALGOL由来とされる[注釈 1])は、状態を持つデータであるアクタ(クロージャ[注釈 2])の実現以外にも、lambda 構文を用いたλ計算[注釈 3]や末尾再帰[注釈 4]の最適化に不可欠な機構であった。 また、プログラムの制御理論から当時出てきた継続[注釈 5]及びアクタ理論におけるアクタへのメッセージ渡し[注釈 6]の概念から触発された継続渡し形式[注釈 7][注釈 8]と呼ばれるプログラミング手法は以後の継続の研究に大きな影響を与えた。 MIT人工知能研究所においては以下のとおりLISPに始まるいくつかの言語が作られた。 年言語作者 この中でカール・ヒューイットが設計した規則ベースの言語 Planner はあまりに複雑な機構を持っていたため当初設計された全機能の実装は困難であり[注釈 9]、サスマン等はそれをサブセット言語の Micro-Planner として実現し、さらには、 Planner の流れを汲んだ独自言語として Conniver を作成した。 同じくカール・ヒューイットが設計したアクタ言語 Plasma (Planner-73) も複雑な機構を持っていたため、MacLisp による実装が存在したものの、その動作の仕組みを理解するのは困難であった。
概要
歴史
1960年LISPマッカーシー、他
1964年Meteorボブロウ
1969年Convertガズマン
1969年Plannerヒューイット
1970年Muddleサスマン、ヒューイット、他
1971年Micro-Plannerサスマン、他
1972年Conniverサスマン、他
1973年Plasmaヒューイット、他
1975年Schemerサスマン、スティール