現在、「ドラゴン ブック」(コンパイラ: 原則、手法、およびツール) を読み進めており、DFA (決定論的有限オートマトン) を使用する字句解析の章で行き詰っています。
DFA は 2 次元配列で、最初の次元には状態が含まれ、2 番目の次元には遷移シンボルが含まれます。これは、すべての DFA 状態に言語のすべての記号が含まれていることを意味します。この本の例では小さな言語 (通常は 2 つの記号) を使用し、章の最後に次の注記を付けています。 、配列は1メガバイト未満しか消費しません。」
ただし、文字列を一致させるには、すべての文字、つまり文字セット全体を一致させたいと考えており、多くの入力ファイルは UTF-8 エンコーディングを使用しています。これにより、アルファベットが大きくなり、DFA のサイズが非常に大きくなります。
これが私が立ち往生しているポイントです。字句解析器や正規表現シミュレーターは一般的にこれをどのように処理していますか?
ありがとう!