1 / 11

Attribute Grammars

Attribute Grammars. Recall the yacc program Parse a given expression Evaluate it. expr : expr '+' expr {$$ = $1 + $3;} | expr '-' expr {$$ = $1 - $3;} | expr '*' expr {$$ = $1 * $3;} | expr '/' expr {$$ = $1 / $3;} | '(' expr ')' {$$ = $2;}

herbst
Download Presentation

Attribute Grammars

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Attribute Grammars • Recall the yacc program • Parse a given expression • Evaluate it expr : expr '+' expr {$$ = $1 + $3;} | expr '-' expr {$$ = $1 - $3;} | expr '*' expr {$$ = $1 * $3;} | expr '/' expr {$$ = $1 / $3;} | '(' expr ')' {$$ = $2;} | NUMBER ; by Neng-Fa Zhou

  2. Attributes and Attribute Grammars • Attributes • variables (type,offset,first or last occurrence,...) • constants (type, value, scope, ...) • Attribute grammar(Syntax-directed definition) • A generalization of CFG in which each grammar symbol has an associated set of attributes • Semantics rules for computing attribute values by Neng-Fa Zhou

  3. Synthesized Attributes • Synthesized Attributes • The value is computed from the values of attributes of the children • S-attributed grammar - synthesized attributes only • Bottom-up propagation • Example • values of expressions • types of expressions by Neng-Fa Zhou

  4. S-Attributed GrammarsExample by Neng-Fa Zhou

  5. The Annotated Parse Tree by Neng-Fa Zhou

  6. Inherited Attributes • Inherited Attributes • The value is computed from the values of attributes of the siblings and parent • Top-down propagation • Example • type information • where does a variable occurs? lhs or rhs by Neng-Fa Zhou

  7. Inherited AttributesExample by Neng-Fa Zhou

  8. The Annotated Parser Tree by Neng-Fa Zhou

  9. Converting Binary to Decimal N ::= BIN N.v = BIN.v BIN.r = 0 BIN0 ::= BIN1 B BIN1.r = BIN0.r + 1 B.r = BIN0.r BIN0.v = BIN1.v+B.v BIN ::= B BIN.v = B.v B.r = BIN.r B ::= '1' B.v = 2B.r B ::= '0' B.v = 0 by Neng-Fa Zhou

  10. Dependency Graphs • Each node represents an attribute of a node in the parse tree • Each arc represents the dependence relationship (flow of values) by Neng-Fa Zhou

  11. Computing Attribute Values • 1.Compute while parsing • Oblivious methods • Fast (one pass) • Complicated • Some attribute values cannot be computed • 2. Compute after parsing • Parse-tree methods (sort dependency graphs) • Rule-based methods (data-flow or fix-point) by Neng-Fa Zhou

More Related