0

現在ドラゴンブックを読んでいます。

第 2 章では、構文解析プロセスについて説明します。このプロセスの全体像を理解するのに苦労しています。この本を読んでいると、シンタックス アナライザーでの処理の順序が分からなくなることがあります。

だから私の理解から:

構文アナライザーには、文脈自由文法を使用して文法を定義する構文定義が含まれています。これは基本的に構文アナライザーの「最初の部分」ですか? では、構文アナライザーは構文定義が含まれていますか?

その後、字句解析器によって生成されたトークンが構文解析器に入ります。構文アナライザーは、解析ツリーを生成することにより、文字列入力が有効かどうかを CFG を介してチェックします。

そして、私の理解では、この解析ツリーは最終的に (抽象) 構文ツリー (解析ツリーよりも詳細が少ない) になります。このツリーはセマンティック アナライザーに入ります。

構文アナライザーに関する私のおおまかな「全体像」の理解が正しく、正しい順序であるかどうかを誰か確認してもらえますか?

4

1 に答える 1

0

構文アナライザーには、文脈自由文法を使用して文法を定義する構文定義が含まれています。

いいえ。テーブル駆動型パーサーでは、文法から生成され、パーサーを駆動するテーブルが含まれます。手書きパーサーでは、コード構造は文法を強く反映します。どちらの場合も、パーサーが実際に文法を「含んでいる」と言うのは正しくありません。どういうわけか、文法に従って入力を解析します

これは基本的に構文アナライザーの「最初の部分」ですか?

いいえ、どこから「最初の部分」を入手したのかわかりません。

では、構文アナライザーには構文定義が含まれていますか?

あくまでも上記の通り。

その後

いや、その

字句解析器によって生成されたトークンは、構文解析器に入ります。シンタックス アナライザーは、文字列入力が有効かどうかを CFG を介してチェックします。

正しい。

于 2014-02-24T22:21:41.523 に答える