Articles

GeeksforGeeks

この記事では、コンパイラ設計における解析ツリーの概念と使用方法を検討します。 まず、二つの用語をチェックしてみましょう:

  • Parse:それは(文)をその構成部分に解決し、その構文的役割を記述することを意味するか、単に文字列またはテキ
  • Tree:ツリーは、階層ツリー構造をシミュレートする広く使用されている抽象データ型であり、ルート値と親ノードを持つ若者のサブツリーをリンクされたノードのグルー

解析ツリー :

  • 解析ツリーは、端末または非端末の階層表現です。
  • これらの記号(端子または非端子)は、入力文字列を生成するための文法の派生を表します。
  • 解析では、文字列は先頭記号を使用してスプリングします。
  • 文法の開始記号は、解析ツリーのルートとして使用する必要があります。
  • 解析ツリーの葉は端末を表します。
  • 各内部ノードは文法の生成を表します。

解析ツリーを描画するためのルール:

  1. すべてのリーフノードは端末である必要があります。
  2. すべての内部ノードは非端子である必要があります。
  3. in-order traversalは元の入力文字列を与えます。例-1:私たちは文法(生産ルール)の例を見てみましょう。
    S -> sABA -> aB -> b

    入力文字列は”sab”であり、解析ツリーは次のとおりです。

    例-2:
    文法(生産ルール)の別の例を見てみましょう。p>

    S -> ABA -> c/aAB -> d/bB

    入力文字列は”acbd”であり、解析ツリーは次のようになります :

    解析ツリーの使用:

    • これは、入力言語の構文を反映することにより、構文解析を行うのに役立ちます。
    • これは、文法に準拠した構造を持つ入力のメモリ内表現を使用します。
    • セマンティックアクションではなく解析ツリーを使用する利点:入力を再解析することなく、情報を複数回渡すことができます。

    注意リーダー! 今の学習を停止しないでください。 学生に優しい価格でCS理論コースとのSDEインタビューのためのすべての重要なCS理論の概念を手に入れ、業界の準備ができてなります。

    記事タグ: