[Prev] [Index] [Next] [上端へ移動] [下端へ移動].
更新日時:2008年05月07日
xyzzyの大部分はCommon Lisp準拠(以下、xyzzy Lispと記す)のプログラミング言語で書かれている。 このプログラミング言語で書いたコードは、ユーザーが指令を与えたときに何をすべきかをコンピュータに指示するソフトウェア(一連の命令)である。 xyzzyは、xyzzy Lispで新たにコードを書いてエディタの拡張機能として簡単に追加できるように設計されている。
(xyzzyは拡張可能なエディタ呼ばれるが、それ以上の能力を有している。 多項式を簡約化したり、コードをデバッグしたり、メールの送受信をしたり、 webブラウジングなどを行える。)
xyzzy Lispはテキストエディタに関連付けて考えられがちであるが、 それ自体で1つのプログラミング言語である。他のプログラミング言語と同様に使える。
プログラミングを理解したい、xyzzyを拡張したい、プログラマになりたいという読者もいることであろう。 xyzzy Lispの入門である本書は、プログラミングの基本を学ぶための指針を与え、 さらに重要なことは、自力で学習する方法を示すために執筆したものである。
本書には、xyzzyで実行できる小さな例題プログラムがある。xyzzyのwww-modeなどで読んでいる場合には、 例題プログラムに出会うたびにそれらを実行できる(これは簡単に実行できるが、その方法は例題をあげたときに説明する)。 あるいは、xyzzyが動いているコンピュータを脇に置いて、印刷された本書を読んでいる場面もあろう。 手もとでxyzzyを実行できなくても本書を読む意味はある。ただし、そのような場合には、 小説や初めての国への旅行案内とみなしてほしい。興味深いはずであるが、実際にそこにいるのとは異なる。
本書の大部分は、xyzzyで使っているコードを眺める、つまり、ウォークスルーであり、ガイド付きツアーである。これらのツアーには2つの目的がある。第一に、実際に動作する(日常的に使用している)コードに慣れてもらうことであり、第二に、xyzzyの動作方式に慣れてもらうことである。統合環境の実装方式を学ぶことは興味深いはずである。また、ソースコードを読み進む際のコツも学んでほしい。ソースコードから学んだり、アイデアを堀り起こせるはずである。 xyzzyはまさに宝の山である。
エディタとしてのxyzzyやプログラミング言語としてのxyzzy Lispを学ぶことに加えて、例題やガイド付きツアーは、Lispのプログラミング環境としてのxyzzyを熟知する機会となるはずである。 xyzzyは、プログラミングの支援に加えて、様々なコマンドも提供する。環境の一部であるバッファやその他のオブジェクトについても学ぶ。 xyzzyのこれらの機能を学ぶことは、読者の街の周りの道を新たに学ぶことに似ている。
読者が知らないプログラミングの側面を学ぶためのxyzzyの利用法も伝えたいと思う。読者を惑わすことがらを理解したり、新たなことを行う方法を調べるためにも xyzzyを利用できるのである。この独立性は好ましいだけでなく利点でもある。
本書は、プログラマではない人向けの初歩の入門書である(xyzzyの使い方についてはある程度知っているものとする)。すでにプログラマである読者には、本書は物足りないであろう。というのは、そのような読者はすでにリファレンスマニュアルを存分に読めるようになっており、本書の構成は間延びして見えるであろう。
経験あるプログラマは、本書をつぎのように評価してくれた。
リファレンスマニュアルで学ぶほうが好きである。各段落に「飛び込んで」、段落のあいだで「息つぎ」する。
段落を読み終えたときには、そこで取り上げた話題は完結しており、必要なことは(以降の段落でより詳しく説明する場合を除いて)すべてわかったと仮定したい。よく構成されたリファレンスマニュアルには、冗長な部分がなく、必要な情報への索引が整備されているはずである。
本書は、このような人向けではない!
第一に、おのおののことがらを少なくとも3回は説明するように努めた。 1回目は紹介、2回目は使い方、3回目は別の使い方や復習である。
第二に、1つの話題に関するすべての情報を1か所にまとめることはせずに、 1つの段落に詰め過ぎないようにした。 筆者の考え方では、そうしないと読者に重荷を背負わせることになるからである。かわりに、その時点で必要なことのみを説明するように努めた(あとで詳しく説明する場合に備えて、少々余分に説明する場面もある)。
1回読むだけで、すべてを理解してもらえるとは考えていない。読者は、説明内容を「わかったつもり」にしておく必要があるだろう。重要なことがらを正しく読者に指し示し、注意を促すように本書を構成したつもりである。
いくつかの段落には、「飛び込んで」もらうしかなく、それ以外に読み進む方法はない。しかし、そのような段落の個数は少なくするように努めた。本書は登頂困難な山ではなく、楽に歩ける小山である。
他のドキュメントとしてリファレンスがある。リファレンスでは、1つの話題に関する情報は1か所にすべてまとめてある。上で述べたようなプログラマは、そちらを参照すべきである。もちろん、本書を読み終えて自分のプログラムを書くときには、 リファレンスが有用なはずである
Lispは、人工知能の研究のために、 1950年代末にマサチューセッツ工科大学で初めて開発された。 Lisp言語はその強力な機能のため、エディタコマンドや統合環境を書くなどの他の目的にも優れている。
xyzzyのLispは、1980年代に標準規格となったCommon Lispに準拠しつつ独自の仕様を入れたものである。
[Prev] [Index] [Next] [上端へ移動] [下端へ移動]
このページはMeadow/Emacs memo(http://www.bookshelf.jp/)の
Emacs Lisp プログラミングを改変したものです。
リンクはどのページでも自由にして下さい。
メールはkyupon@gmail.comまで送って下さい。