[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]  


@shorttitlepage Flex

Flex Copyright (C) by The Regents of the University of California Berkeley.
All rights reserved.

Flex is copyrighted by The Regents of the University of California Berkeley and is not covered by the GNU General Public License. It is distributed by the Free Software Foundation under the terms of the original copyright. Please read the file `COPYING' in the Flex distribution for details on the Flex copyright.

This manual
Copyright (C) 1992, 1993 Free Software Foundation

Published by the Free Software Foundation
59 Temple Place -- Suite 330
Boston, MA 02111-1307 USA
Printed copies are available for $20 each.
ISBN 1-882114-21-3

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation.

Cover art by Etienne Suvasa.

このマニュアルではFlexの字句スキャナ生成機能が持つ重要な点を網羅して説明しています。 これには、 パターン・マッチング・ルールの記述方法、 スキャナの最適化方法、 および、 どのようにFlexがPOSIXに適合しているか、 という点が含まれています。 本書中いたるところに実例を示してありますし、 有用なコードを集めた特別なセクションもあります。

このマニュアルは、 チュートリアルというよりはむしろリファレンス・マニュアルになっています。 題材や説明はなるべくシンプルになるよう努めましたが、 かなり専門的になってしまったころもあります。 Flexの使用経験が浅いユーザでも、 最初の2、3章は問題なく読むことができるはずです。 しかし、 実例を含む章を理解するには、 少なくとも実用的なC言語の知識と、 ある程度のプログラミング経験が必要になります。 特に、 FlexとBisonを組み合わせて使う方法を説明した章は、 前提としてyacc/BisonとBNF (BNFが何であるかを知らない読者は、 それを勉強する必要がでてくるでしょう) に関する知識を必要とします。

字句解析、コンパイラ・デザイン、プログラミング全般について経験のない読者には、 このマニュアルの後半部分を読む前に、 各領域における一般的な問題について知識を得ておくようお勧めします。 この目的に役立つ良書をいくつか挙げておきます。

ここで、 このマニュアルを書く作業を様々な方法でより容易にしてくれた以下の人々に感謝したいと思います。

さらにここで、 全くの無報酬であるにもかかわらず、 なぜ私がこのマニュアルを書くために多くの時間を割いたのか、 その理由について説明しておきたいと思います。 主な理由はこういうことです。 私自身にはFree Software Foundation(FSF)ほど強い政治的指向性はありませんが、 それでもフリー・ソフトウェアはこの世界にとって非常に重要な資産であり、 FSFが一貫して目的としているものは、 私たちすべてがその実現のために努力するべきものであると感じるのです。

プログラミングをしている時、 私はフリーのツールを多く使います。 私がこうしたツールを使うのは、 それがフリー(無料)であるからではなく、 他の同等の製品と比較して優れているからです。 例えば、 gccは入手可能なANSI Cコンパイラの中で最も良いものの1つであると主張できます。 emacsTeXgroffghostscriptはいずれもきわめて役に立つテキスト処理ツールです。 X11f2cp2cはそれぞれの分野において注目に値するものです。 そしてFlexはほとんどのマシン上にある標準のLexより格段に優れています。

このことは、 フリー・ソフトウェアが役に立ち、 かつ、 十分にサポートされていることを証明しています。 こうしたプログラムのソース・コードにアクセスできたおかげで、 私はそれらを研究し、 そこから学ことができました。

このマニュアルは、 FSFとすべてのフリー・ソフトウェアの作者の努力に対して恩返しをするための、 私流の方法なのです。 もし読者がGNUのツールやその他のフリーのプログラムを使っているのであれば、 ご自分でも何か貢献することを試みてはいかがでしょうか? 現在、 フリーのオペレーティング・システムが3つ(Linux、386BSD、GNU Hurd)開発中です。 そこでは、 あらゆる援助、 特にプログラミングとは関係ない領域での援助が必要とされています。

最後に、 このマニュアル中の情報に誤りがないようにするための努力は払いましたが、 なんらかの誤りや矛盾がまだ含まれているであろうということを一言断っておきたいと思います。 このマニュアル中の誤りやその他の不都合な点の責任はすべて私にあり、 私以外の何人の見解もしくは能力の限界を表すものではありません。 また、 このマニュアル中の実例の多くはC言語の使い方として最も効率的なものではないことを私は認識していますが、 このマニュアル中では性能よりも明瞭さの方がはるかに重要であると考えました。

最後にもう一度、 すべてのフリー・ソフトウェアの作者に対して感謝いたします。

G.T. Nicol、1993 年 1 月 11 日


[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]