R6RS:翻訳:R6RS:Introduction

R6RS:翻訳:R6RS:Introduction

はじめに

プログラミング言語は機能の上に機能を積み重ねて設計されるのではなく、付加機能が必要になる弱点や制約を取り除くように設計されるべきである。 Scheme では、式を構成するごく少数の原理と、それらの組み合わせ方から制約を取り除くことで、今日使われている主立ったプログラミング理論のほとんどをサポートするに充分に柔軟な、実利的で効率的なプログラミング言語を構成できることを示す。

Scheme はラムダ計算と同様の第一級の手続きを導入した最初のプログラミング言語のひとつであり、それによって動的型付け言語における静的スコープとブロック構造の有用性を証明した。 Scheme はラムダ式とシンボルから手続きを区別した最初の主要な Lisp 方言であり、Scheme では、すべての変数に単一の字句環境を用い、手続き呼び出しの演算子部分を演算対象部分と同じ方法で評価する。繰り返しの表現を完全に手続き呼び出しに依ったことにより、 Scheme は末尾再帰の手続き呼び出しが本質的に引き数付きの goto であるという事実を強調した。 Scheme は第一級の脱出手続きを採用し広く用いられた言語の初まりであり、そのことによりそれ以前に知られていた逐次的な制御構造を統合して扱うことができるようになった。 Scheme は後の版で、 Common Lisp の総称的な算術の拡張である正確数オブジェクトと不正確数オブジェクトという概念を導入した。さらに最近では、 Scheme は健全なマクロをサポートした最初のプログラミング言語となった。これにより、ブロック構造の言語の構文を一貫性と信頼性のある方法で拡張することができるようになった。

基本理念

標準化活動への取り組みを指針づけるため、本報告書の著者たちは下に示した理念を選定してきた。『アルゴリズム言語 Scheme についての報告書 第五改訂版』[14] で定義された Scheme 言語と同じく、本報告書で述べる言語の意図するところは以下の通りである。

加えて本報告書で意図したのは、

『アルゴリズム言語 Scheme に関する報告書 第五改訂版』で述べられている Scheme でも可搬性のあるプログラムを書くことは可能であり、実際に本報告書よりも前にも可搬性のあるプログラムは書かれていたが、一方で多くの Scheme プログラムはそうではなかった。これは第一に標準化された根本的なライブラリがなかったことと、実装系特有の言語拡張の蔓延によるものであった。

通則として、 Scheme には多種多様なライブラリを書くことのできる構成要素や、ライブラリとアプリケーションのコードの可搬性と可読性を高めるために一般に使われる利用者レベルの機能を含めるべきであり、一般にあまり使われない機能や別個のライブラリとして簡単に実装できる機能は除外すべきである。

本報告書で述べる言語ではまた、上記の理念に反さず、将来の言語の可能性に悪影響を与えない範囲で『アルゴリズム言語 Scheme に関する報告書 第五改訂版』で述べられた Scheme で書かれたプログラムと後方互換性を保つことにした。将来の可能性の点については、編集者たちは現存するよりも多くの Scheme プログラムが書かれることになるであろうという予測のもとで活動をしてきた。そのため、将来のプログラムについて我々は非常に大きな関心を抱いているのである。

謝辞

多くの人々が本報告書の本版に多大な貢献をしてくれた。特に、 Aziz Ghuloum と André van Tonder にはライブラリシステムの参照実装において貢献してくれたことに感謝したい。 Alan Bawden、 John Cowan、 Sebastian Egner、 Aubrey Jaffer、 Shiro Kawai、 Bradley Lucier、 André van Tonder には言語設計に関する見識においての貢献に感謝したい。 Marc Feeley、 Martin Gasbichler、 Aubrey Jaffer、 Lars T Hansen、 Richard Kelsey、 Olin Shivers、 André van Tonder は本報告書の直接の入力となる SRFI を書いてくれた。 Marcus Crestani、 David Frese、 Aziz Ghuloum、 Arthur A. Gleckler、 Eric Knauel、 Jonathan Rees、 André van Tonder は本報告書の草稿の校正を全面にわたってしてくれた。

また我々は本報告書を作るにあたっての次の人々の助力に謝意を示させていただきたい。 Lauri Alanko、 Eli Barzilay、 Alan Bawden、 Brian C. Barnes、 Per Bothner、 Trent Buck、 Thomas Bushnell、 Taylor Campbell、 Ludovic Courte`s、 Pascal Costanza、 John Cowan、 Ray Dillinger、 Jed Davis、 J.A. “Biep” Durieux、 Carl Eastlund、 Sebastian Egner、 Tom Emerson、 Marc Feeley、 Matthias Felleisen、 Andy Freeman、 Ken Friedenbach、 Martin Gasbichler、 Arthur A. Gleckler、 Aziz Ghuloum、 Dave Gurnell、 Lars T Hansen、 Ben Harris、 Sven Hartrumpf、 Dave Herman、 Nils M. Holm、 Stanislav Ievlev、 James Jackson、 Aubrey Jaffer、 Shiro Kawai、 Alexander Kjeldaas、 Eric Knauel、 Michael Lenaghan、 Felix Klock、 Donovan Kolbly、 Marcin Kowalczyk、 Thomas Lord、 Bradley Lucier、 Paulo J. Matos、 Dan Muresan、 Ryan Newton、 Jason Orendorff、 Erich Rast、 Jeff Read、 Jonathan Rees、 Jorgen Schäfer、 Paul Schlie、 Manuel Serrano、 Olin Shivers、 Jonathan Shapiro、 Jens Axel Søgaard、 Jay Sulzberger、 Pinku Surana、 Mikael Tillenius、 Sam Tobin-Hochstadt、 David Van Horn、 Andre' van Tonder、 Reinder Verlinde、 Alan Watson、 Andrew Wilcox、 Jon Wilson、 Lynn Winebarger、 Keith Wright、 Chongkai Zhu。

本報告書の旧版の作成にあたって次の人々に謝意を表したい。 Alan Bawden、 Michael Blair、 George Carrette、 Andy Cromarty、 Pavel Curtis、 Jeff Dalton、 Olivier Danvy、 Ken Dickey、 Bruce Duba、 Marc Feeley、 Andy Freeman、 Richard Gabriel、 Yekta Gürsel、 Ken Haase、 Robert Hieb、 Paul Hudak、 Morry Katz、 Chris Lindblad、 Mark Meyer、 Jim Miller、 Jim Philbin、 John Ramsdell、 Mike Shaff、 Jonathan Shapiro、 Julie Sussman、 Perry Wagle、 Daniel Weise、 Henry Wu、 Ozan Yigit。

Carol Fessenden、 Daniel Friedman、 Christopher Haynes には Scheme 311 version 4 のリファレンスマニュアルの文章の使用の許可をくれたことに感謝したい。 TI Scheme Language Reference Manual [26] の文章の使用許可について Texas Instruments, Inc に感謝したい。 MIT Scheme [20], T [21], Scheme 84 [12], Common Lisp [25], Chez Scheme [8], PLT Scheme [11], Algol 60 [1] のマニュアルの影響にも喜んで感謝の念を示したい。

また、本報告書を TeX で組版するにあたっての多大な努力を払った Betty Dexter と、そのプログラムを設計し彼女を困らせた Donald Knuth にも感謝したい。

The Artificial Intelligence Laboratory of the Massachusetts Institute of Technology、 the Computer Science Department of Indiana University、 the Computer and Information Sciences Department of the University of Oregon、 the NEC Research Institute は本報告書の準備を援助してくれた。 MIT での作業への援助は the Advanced Research Projects Agency of the Department of Defense under Office of Naval Research contract N00014-80-C-0505 の一部として提供された。 the Indiana University への援助は NSF grants NCS 83-04567 と NCS 83-03325 により提供された。


Last modified : 2008/11/07 21:31:08 UTC