Flex&LexとYacc&Bisonの違いは何ですか?私はインターネットを激しく検索しましたが、確固たる答えは見つかりませんでした。
Ubuntuに純粋なLexとYaccをインストールできますか、またはflexとbisonのみをインストールできます。私は混乱しています。
Lexが無料でない場合、Ubuntuディストリビューションにインストールする必要があるのはなぜですか?
Lex --version
Lex 2.5.35
LexとFlexにはいくつかの違いがありますが、Flexの問題にぶつかるにはLexを悪用する必要があります。 (私はLexを悪用し、Flexの下では動作しないプログラムを持っています。)これは主に入力先読みの領域にあります。 Lexでは、独自の入力コードを提供し、文字ストリームを変更できます。フレックスはあなたにそれをさせません。
YaccとBisonはかなり密接に互換性がありますが、Bisonにはいくつかの追加のトリックがあります。
UbuntuにインストールするLexとYacc(の元のAT&Tバージョン)の正当なコピーを見つけることはおそらくできないでしょう。私は必ずしもそれが不可能だとは言いませんが、私はそのようなことを知りません。 FlexとBisonは容易に入手でき、ほとんどの目的で同等です。また、BSDの世界からさまざまな代替プログラムおよびほぼ同等のプログラムを見つけることができます。
LexとYaccは、Unix SVRxライセンスによって維持されています。IBM(AIX)、HP(HP-UX)、Sun(Solaris)などの企業は、コマンドでLexとYaccのバージョンを変更しています。 MKSは、MKS LexおよびMKS Yaccも提供します。ただし、Yaccには少なくとも非標準の拡張機能があります。
フレックスとバイソンは無料です。 (AT&T)LexとYaccは違います。
BisonはGNU Yaccの実装/拡張であり、FlexはLexの後継です。どちらの場合でも、bison/flexを使用することは問題ありません(推奨)。
ほとんどの(すべて?)Linuxシステムでは、「Lex」は実際にはflexへのシンボリックリンクです。基本的に、無料版とは別の名前です。
YACCは、Plan 9とOpen Solarisの両方のオープンソースライセンスで利用できます。また、元のYACCと互換性がありますが、ソースコードを共有しないBerkeley YACCもあります。 Berkeley YACCは、任意のオープンソースBSDオペレーティングシステムで使用できます。
GNUプロジェクトの一部のBison。また、yaccはBerkeley Software Distribution(BSD)のユーティリティとして使用されます。yaccとの互換性はありますが、LexとYaccは過去のものです。フレックスとバイソンは今日広く使用されています。