3

は私がコンパイラ読んでいる:原則、テクニック、およびツールをして、これは理解していない:字句解析の状態遷移図 - *(アスタリスク)がフォワードポインタを後退させる意味はありますか?

また、必要であれば、前方ポインタを一の位置 を退避させる(すなわち、語彙素はありませんアクセプト中のシンボルには の状態が含まれていません)、それに加えて受諾状態の近くに*を追加します。 の例では、 の位置よりも前に後退する必要はありませんが、それがあった場合は、受け入れる の状態に任意の数の*を付けることができます。

すべてが理にかなって、私は、アスタリスクの重要性を理解していないこと。この本は正規表現(Kleene star/closure)でそれを使用していただけで、何かを表現するために使われているのですか、それともKleeneの星ですか?

+0

(これが正しいサイトであるかどうかはわかりません。また、上にタグが付いているように感じる) – Pubby

答えて

3

いいえ、Kleeneの星ではありません。テキストはそれを説明しています。最後のトークンは、受け入れられた文字の一部ではないため、元に戻してください。例えば<と考えるとREの2文字は読んでいますが、2番目の文字は実際には読んでいないので、後で読み込むと最初に見つかるように戻します。

完全なFSM(有限状態マシン)では、完全なレキシカル構文を扱うので、このような状況はありませんが、構文の一部のみを示しているため、このデバイスを使用する必要があります。この例では、「他の」円弧は別の状態(より多くの円弧)に移動します。

関連する問題