Skip to main content

Syntax Trees

Syntax trees are abstract or compact representation of parse trees.

They are also called as Abstract Syntax Trees.

Example-



Problem-01:

Considering the following grammar-

E → E + T | T
T → T x F | F
F → ( E ) | id
Generate the following for the string id + id x id
  1. Parse tree
  2. Syntax tree
  3. Directed Acyclic Graph (DAG)

Solution-

Parse Tree-


 





Comments

Popular posts from this blog

Code Optimization | Code Optimization Techniques

Code Optimization- Code Optimization is an approach to enhance the performance of the code. The process of code optimization involves- Eliminating the unwanted code lines Rearranging the statements of the code Advantages- The optimized code has the following advantages- Optimized code has faster execution speed. Optimized code utilizes the memory efficiently. Optimized code gives better performance. Code Optimization Techniques- Important code optimization techniques are- Compile Time Evaluation Common sub-expression elimination Dead Code Elimination Code Movement Strength Reduction 1. Compile Time Evaluation- Two techniques that falls under compile time evaluation are- A) Constant Folding- In this technique, As the name suggests, it involves folding the constants. The expressions that contain the operands having constant values at compile time are evaluated. Those express...

FIRST & FOLLOW Calculation

First Function- First(α) is a set of terminal symbols that begin in strings derived from α. Example- Consider the production rule- A → abc / def / ghi Then, we have- First(A) = { a , d , g } Rules For Calculating First Function- Rule-01: For a production rule X → ∈, First(X) = { ∈ } Rule-02: For any terminal symbol ‘a’, First(a) = { a } Rule-03: For a production rule X → Y1Y2Y3, Calculating First(X) If ∈ ∉ First(Y1), then First(X) = First(Y1) If ∈ ∈ First(Y1), then First(X) = { First(Y1) – ∈ } ∪ First(Y2Y3) Calculating First(Y2Y3) If ∈ ∉ First(Y2), then First(Y2Y3) = First(Y2) If ∈ ∈ First(Y2), then First(Y2Y3) = { First(Y2) – ∈ } ∪ First(Y3) Similarly, we can make expansion for any production rule X → Y1Y2Y3…..Yn. Follow Function- Follow(α) is a set of terminal symbols that appear immediately to the right of...

Three Address Code | Examples

Three Address Code- Three Address Code is a form of an intermediate code. The characteristics of Three Address instructions are- They are generated by the compiler for implementing Code Optimization . They use maximum three addresses to represent any statement. They are implemented as a record with the address fields. General Form- In general, Three Address instructions are represented as- a = b op c Here, a, b and c are the operands. Operands may be constants, names, or compiler generated temporaries. op represents the operator. Examples- Examples of Three Address instructions are- a = b + c c = a x b Common Three Address Instruction Forms- The common forms of Three Address instructions are- 1. Assignment Statement- x = y op z and x = op y Here, x, y and z are the operands. op represents the operator. It assigns the result obtained after solving the right side expression of the a...