GeeksforGeeks
この記事では、コンパイラ設計における解析ツリーの概念と使用方法を検討します。 まず、二つの用語をチェックしてみましょう:
- Parse:それは(文)をその構成部分に解決し、その構文的役割を記述することを意味するか、単に文字列またはテキ
- Tree:ツリーは、階層ツリー構造をシミュレートする広く使用されている抽象データ型であり、ルート値と親ノードを持つ若者のサブツリーをリンクされたノードのグルー
解析ツリー :
- 解析ツリーは、端末または非端末の階層表現です。
- これらの記号(端子または非端子)は、入力文字列を生成するための文法の派生を表します。
- 解析では、文字列は先頭記号を使用してスプリングします。
- 文法の開始記号は、解析ツリーのルートとして使用する必要があります。
- 解析ツリーの葉は端末を表します。
- 各内部ノードは文法の生成を表します。
解析ツリーを描画するためのルール:
- すべてのリーフノードは端末である必要があります。
- すべての内部ノードは非端子である必要があります。
- in-order traversalは元の入力文字列を与えます。例-1:私たちは文法(生産ルール)の例を見てみましょう。
S -> sABA -> aB -> b
入力文字列は”sab”であり、解析ツリーは次のとおりです。
例-2:
文法(生産ルール)の別の例を見てみましょう。p>S -> ABA -> c/aAB -> d/bB
入力文字列は”acbd”であり、解析ツリーは次のようになります :
解析ツリーの使用:
- これは、入力言語の構文を反映することにより、構文解析を行うのに役立ちます。
- これは、文法に準拠した構造を持つ入力のメモリ内表現を使用します。
- セマンティックアクションではなく解析ツリーを使用する利点:入力を再解析することなく、情報を複数回渡すことができます。
注意リーダー! 今の学習を停止しないでください。 学生に優しい価格でCS理論コースとのSDEインタビューのためのすべての重要なCS理論の概念を手に入れ、業界の準備ができてなります。
記事タグ: