Normal Forms - PowerPoint PPT Presentation

About This Presentation
Title:

Normal Forms

Description:

Add rules to capture the effect of l-rules to be deleted. (Ensures non ... Analogy: solving linear simultaneous equations. What are the values of x,y, and z? ... – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0
Slides: 26
Provided by: csWr
Learn more at: http://cecs.wright.edu
Category:

less

Transcript and Presenter's Notes

Title: Normal Forms


1
Normal Forms
  • Chomsky Normal Form
  • Griebach Normal Form

2
  • Language preserving transformations
  • Improve parsing efficiency
  • Prove properties about languages and derivations

Shorter derivations
3
Elimination of l-rules
Reduces the length of the derivation
4
  • Aim Restrict the grammar such that
  • Approach
  • Introduce S

5
  • Add rules to capture the effect of l-rules to be
    deleted.
  • (Ensures non-contracting rules)

6
Example
7
Determination of nullable non-terminals
Bottom-up flow of information
8
Algorithm Nullable Nonterminals
  • NULL A A-gtl e P
  • repeat
  • PREV NULL
  • foreach A e V do
  • if there is an A-rule A-gtw
  • and w e PREV
  • then NULL NULL U A
  • until NULL PREV

9
Proof of correctness
  • Soundness
  • If A e NULL(final) then Agt l.
  • Induction on the number of iterations of the
    loop.
  • Completeness
  • If Agt l then A e NULL(final).
  • Induction on the minimal derivation of the null
    string from a non-terminal.
  • Termination
  • Bounded by the number of non-terminals.

10
Elimination of Chain rules
Removing renaming rules redundant procedure
calls.
Top-down flow of information
11
Construction of Chain(A)
  • Chain(A) A PREV f
  • repeat
  • NEW Chain(A) - PREV
  • PREV Chain(A)
  • foreach B e NEW do
  • if there is a rule B-gtC
  • then Chain(A) Chain(A) U C
  • until Chain(A) PREV

12
Examples
13
Elimination of useless symbols
  • A variable is useful if it occurs in a derivation
    that begins with the start symbol and generates a
    terminal string.
  • Reachable from S
  • Derives terminal string

14
  • Construction of the set of variables that derive
    terminal string.
  • Bottom-up flow of information
  • Similar to the computation of nullable variables.
  • Construction of the set of variables that are
    reachable
  • Top-down flow of information
  • Similar to the computation of chained variables.

15
Examples
B does not derive terminal string C unreachable.
A unreachable.
Empty set of productions
Non-termination
16
Chomsky Normal Form
  • A CFG is in Chomsky Normal Form if each rule is
    of the form
  • Theorem There is an algorithm to construct a
    grammar G in CNF that is equivalent to a CFG G.

17
Construction
  • Obtain an equivalent grammar that does not
    contain l-rules, chain rules, and useless
    variables.
  • Apply following conversion on rules of the form

18
Significance of CNF
  • Length of derivation of a string of length n in
    CNF (2n-1)
  • (Cf. Number of nodes of a strictly binary tree
    with n-leaves)
  • Maximum depth of a parse tree n
  • Minimum depth of a parse tree

19
Removal of direct left recursion
  • Causes infinite loop in top-down (depth-first)
    parsers.
  • Approach Generate string from left to right.

20
Note that absence of direct left recursion does
not imply absence of left recursion.
21
(Cf. Gaussian Elimination)
22
Griebach Normal Form
  • ( Constructs terminal prefixes that
    facilitates
  • discovery of dead-ends )
  • A CFG is in Griebach Normal Form if each rule is
    of the form
  • Theorem There is an algorithm to construct a
    grammar G in GNF that is equivalent to a CFG G.

23
Analogy solving linear simultaneous equations
What are the values of x,y, and z?
(Solving for z and then back substituiting.)
24
Example conversion to GNF
Introducing terminals as first element on RHS
Eliminating left recursion
25
  • The size of the equivalent GNF can be large
    compared to the original grammar.
  • Example CFG has 5 rules, but the corresponding
    GNF has 24 rules!!
  • Length of the derivation in GNF
  • Length of the string.
  • GNF is useful in relating CFGs (generators) to
    pushdown automata (recognizers/acceptors).
Write a Comment
User Comments (0)
About PowerShow.com