前: Problem Solving, 上: Introduction


1.2 一般的なプログラミング・ツールとしてのFlex

Flexはコンパイラにしか使えないということはありません。 読者のコンピュータ上にある、 ファイルを読み込んだり、 なんらかの形で文字のグループを処理する必要のあるすべてのプログラム、 特に、 変換フィルタや言語ツールのことを考えてみてください。 こうしたプログラムのほとんどすべてを、 Flex単体、 もしくはFlexと他のツールの組み合わせによって作成することができます。

1つの良い例が文字数のカウントです。 例えば、 ファイルの中の全行数、 個々の文字の出現回数、 `foo'という単語の出現回数を調べるプログラムを作成したいとしましょう。 標準的なツール (grepsedawkperl等) で作成することも、 C言語のプログラムを書いて作成することもできますが、 Flexで作成することも可能です。 他の例として、 特定のキーワードを探す必要のある、 メール・リーダがあります。 この場合でも、 標準ツールで実現することも、 FlexとC言語で実現することもできます。

Flexを使うことで、 プログラマは、 スキャナの開発やファイルを構成する文字の処理にかかる時間を大幅に減らすことができます。 ほとんどの場合、 Flexに対する入力情報は、 既存のプログラミング言語で記述されたコードと比較して、 より理解しやすく、 少なくとも同程度の移植性があり、 保守もより簡単です。 それだけでなく、 Flexでスキャナを開発するのにかかる時間は、 既存のプログラミング言語で同等のスキャナを開発する場合と比べきわめて短くてすむので、 Flexは、 プロトタイピングや、 一度しか使わないプログラムやフィルタの開発に最適です。