SlideShare a Scribd company logo
Context-Free Languages


                                             Derivation tree, parsing, & ambiguity




        context free grammar and ambiguity                                       1
n n                                         R
{a b }                                {ww }


    Regular Languages



         context free grammar and ambiguity       2
Context-Free Languages

  n n                                         R
{a b }                                {ww }


    Regular Languages



         context free grammar and ambiguity       3
Context-Free Languages




Context-Free                                         Pushdown
Grammars                                             Automata

                                                                stack

                                                    automaton

               context free grammar and ambiguity                       4
Context-Free Grammars




       context free grammar and ambiguity   5
n n
L(G )   {a b : n 0} is not regular ….


            (((( ))))


we relax the restriction of regular grammar




                context free grammar and ambiguity   6
n n
 L(G )   {a b : n 0} is not regular ….

A context-free grammar G :                             S   aSb
                                                       S

 The grammar G is linear but not regular.



                  context free grammar and ambiguity             7
n n
L(G )   {a b : n 0} is not regular ….




Regular grammar (e.g., a right linear grammar):
A XB or A  X
               where A, B V, and X T*

                                                      Context Free
   A  X where X                   (V T)*             Grammar
                 context free grammar and ambiguity                  8
Def. Context-Free Grammars (CFG)

    Grammar     G           (V , T , S , P )

Variables     Terminal                      Start
              symbols                       variable

Productions of the form:                              A   x
    x is string of variables and terminals
 Note: A regular grammar is a regular grammar.
                 context free grammar and ambiguity           9
Def. Context-Free Languages (CFL)

A language        L is context-free
  if and only if

  there is a context free grammar                         G
  with L L (G )

Note: To show L is a CFL find a CFG for L.
Note: A regular language is also a CFL.
                     context free grammar and ambiguity       10
n n                                   is a Context-Free
 L(G )     {a b : n 0}                             Language

with context-free grammar                               G: S    aSb
                                                           S

 A derivation:
S    aSb     aaSbb                      aaaSbbb                aaabbb


                   context free grammar and ambiguity                   11
Another Example

A context-free grammar                        G:     S   aSa
                                                     S   bSb
A derivation:                                S
S   aSa      abSba                     abaSaba           abaaba

                   R
    L(G ) {ww : w {a, b}*}
          is a Context-Free Language
                context free grammar and ambiguity                12
A non Linear Examples

A context-free grammar                        G:       S        aSb
                                                       S        SS
                                                       S
What is the L(G)?

A derivation:
S    SS     aSbS              abS                    abaSb
    abaaSbb         abaabb                           () (( ))
                context free grammar and ambiguity                    13
S                  aSb
                S                  SS
                S                                    () ((( ))) (( ))
L(G ) {w : na ( w)           nb ( w), and
           na (v)           nb (v) in any prefix v}
   How to prove the given grammar
   indeed generates the language?
                  Homework #4 only shows L(G)              L.

                context free grammar and ambiguity                      14
L(G) L: by induction on the number of steps in deriving a sentential form
Any sentential form obtained from the grammar G: if by one step (rule2 & 3
do not generate any terminal symbols at all, i.e. na(w)=nb(w) = 0, thus is
true; if it is from rule 1: SaSb, then it satisfies the condition of
na(w)=nb(w) and the prefix condition.
Assume any sentential obtained from n steps it is true,
Now assume a sentential form of (n+1) steps: if the last step is by rule 2 or
3, then no new symbols is added, therefore it satisfies the condition since
it satisfies on previous step; it the last step is by rule 1, then as can be
seen that a is added before b is added (from left to right), thus the prefix
condition is also satisfied.

L L(G): by induction on |w|, w L.
By observing the definition of L, w L then |w| is even, let |w|=2n. and if
|w| >= 2, w = a…..b (the first symbol is a and the last symbol is b).
|w|=0: then w= , then w L(G).
Assume |w|=2n, w L(G) is true for n >= 0.
Now |w| = 2n+2, then w=aub with |u|=2n, and u L. by induction
assumption, u L(G), i.e. there exist a derivation s * u, thus S aSb *
aub = w.
                            context free grammar and ambiguity                  15
Show L={anbmcn: n, m 0 } is CF.



Show L={anbncm: n, m 0 } is CF.



             context free grammar and ambiguity   16
True or False

If L is not regular then L is context
 free.

If L is not context free then L is not
 regular

From grammar
 G: S AB, A aA| , B bB| , thus
 L(G) is CF & not regular.
               context free grammar and ambiguity   17
Examples of showing languages are
Context Free

Show { anbm : n = m+3} is CF.

Show { anbm : n       m+3} is CF.


  Try hw # 7 (a) ~ (d) p.133


               context free grammar and ambiguity   18
{anbm: n m+3}
S1 is for n> m+3 & S2 is for n < m+3 & S  S1
| S2
S1: n m+4, i.e., n = m+t for t=4, 5, 6, …, i.e.
anbm= am+tbm: thus, S1  aaaaB | aS1, B bB | .
S2: n m+2, i.e, n+t =m+2, m = n-2 + t for t=0, 1,
2, …, i.e, anbm= anbn-2+t for t=0,1,2, … which
implies anbm= anbn-2 , anbn-1 , anbn , anbn+1 ,
anbn+2 , ....
   (anbn-2 :) D  aa K, K aKb | ; (anbn-1:) E
aK; (anbn , anbn+1 , anbn+2 , .... ) F Fb | K; and
S2  D | E | F
Examples of showing languages are
Context Free

Show { w: na(w) = nb(w)} is CF.

Show { w: na(w) > nb(w)} is CF.

Show { w: na(w) = 2 nb(w)} is CF.

 Try hw # 7 (e) ~ (g) p.133

                context free grammar and ambiguity   20
S aSb | bSa |SS| (for na = nb)
S1 for na(w) >nb(w) S1 aS1 | aS | SS1

{ w {a,b,c}*: |w|=3na(w)}
E  aEbEc | aEcEb | bEaEc | bEaEc | cEaEb
| cEbEa | EE |    (this is for na = nb = nc)
S  aEKEK | KEaEK | KEKEa
K  b | c.
               context free grammar and ambiguity   21
Derivation Order for w = aab in the CFG:
1. S        AB        2. A                        aaA             4. B      Bb
                      3. A                                        5. B
Leftmost derivation:
        1        2                    3                    4          5
    S       AB       aaAB                   aaB                aaBb       aab
Rightmost derivation:
        1        4                5                   2           3
    S       AB       ABb                  Ab               aaAb       aab
                      context free grammar and ambiguity                        22
Derivation Trees
Another way of showing derivation,
independent of the order in which
productions are used.


                context free grammar and ambiguity   23
S       AB           A                aaA |                   B   Bb |

                           S                 AB
                                     S

                 A                                        B


    Every node to its children is corresponding to a
    production rule in the grammar


                     context free grammar and ambiguity                  24
S   AB       A                aaA |                   B   Bb |

         S          AB                     aaAB
                             S

         A                                        B

    a    a              A


             context free grammar and ambiguity                  25
S   AB          A                aaA |                   B   Bb |

        S   AB               aaAB                    aaABb
                                S

            A                                        B

    a       a              A                    B        b


                context free grammar and ambiguity                  26
S   AB        A                aaA |                   B      Bb |

S   AB       aaAB                      aaABb               aaBb
                              S

         A                                         B

    a    a               A                    B        b


              context free grammar and ambiguity                     27
S   AB         A                aaA |                   B      Bb |

S       AB   aaAB                  aaABb                    aaBb     aab
                                   S
A Derivation
Tree
           A                                            B

         a     a              A                    B        b
Every leaf has a
label from T { }
                   context free grammar and ambiguity                     28
S   AB       A                aaA |                    B     Bb |

S       AB   aaAB                aaABb                    aaBb        aab
Derivation Tree                  S

             A                                        B
                                                                 yield

         a   a              A                    B        b      aa     b
                                                                  aab

                 context free grammar and ambiguity                      29
derivation order doesn’t matter
Leftmost:
S    AB      aaAB                 aaB                       aaBb         aab
Rightmost:
S    AB      ABb               Ab                   aaAb             aab
                                                        S
Same derivation tree
                                    A                            B

                     a               a              A        B       b


                   context free grammar and ambiguity                          30
S   AB           A         aaA |                              B   Bb |



                 S                                  Derivation Tree
                                                    shows which rules are
        A                       B                   used in obtaining a w,
                                                    but do not give the order
                                                    of their applications.
a       a    A           B              b
                                         We can find the corresponding
                                         left-most or right-most derivations
                                         from a given derivation tree easily.

                             context free grammar and ambiguity                 31
Partial Derivation Trees Every leaf has a label
                                                      from T   { }     V
S     AB        A               aaA |                          B       Bb |
                          The yield of a partial derivation
S     AB                  tree    a sentential form of a
                          derivation


Partial derivation                                      S
tree with root S

                              A                                    B

                 context free grammar and ambiguity                           32
sentential
            S       AB                     aaAB
                                                          form



Partial derivation
                                                      S
tree with root S
                          A                                  B

                                                                 yield
             a             a                    A
                                                                 aaAB
                 context free grammar and ambiguity                      33
G: A CFG then                                            Thm. 5.1 on p.132

Every w L(G) there exists a derivation tree
with yield = w.           a deriation with the
                                                     sentential form w
            Conversely,
the yield of any derivation tree w, w L(G)
                         partial derivation tree tG (with root S), w
Homework for 5.1 (p.133) : 2~5, 7, 8, 11, 13~24
Hand in: 7bef, 8bdg, 13, 15, 17, 18, 21
Prove by induction on the number of steps in the derivation. Check with the
book on p.132.
                            context free grammar and ambiguity                34
Ambiguity




context free grammar and ambiguity        35
E E E | E E | (E) | a
    a a a
                       leftmost derivation

     E    E   E E                   a E            a E E
                                  a a E            a a*a
E         E

a    E              E

      a               a
              context free grammar and ambiguity           36
E E E | E E | (E) | a
    a a a  leftmost derivation

E   E E    E E E a E E E
          a a E a a a
                                                   E       E

                                           E           E   a

                                           a           a
              context free grammar and ambiguity           37
E       E E | E E | (E) | a
                 a a a
              Two derivation trees
        E                                                  E

E            E                                         E       E

a       E             E                       E            E   a

        a              a                       a           a
                  context free grammar and ambiguity           38
The grammarE               E E | E E | (E) | a
is ambiguous:
    Because a string of L(G)
     has two derivation trees

        E                                                      E
                          a a a
    E         E                                            E       E


    a   E           E                              E           E   a

        a            a                                 a       a
                  context free grammar and ambiguity                   39
Or we can say

A grammar is ambiguous….




        context free grammar and ambiguity   40
The grammarE             E E | E E | (E) | a
is ambiguous:

  There are two different leftmost
  derivations for a a a

   E    E E       a E                                a E E
                a a E                                a a*a
   E    E E      E E E a E E
                a a E a a a
                context free grammar and ambiguity           41
Definition:
  A context-free grammar                            G is ambiguous

  if some string    w L(G ) has

      two or more derivation trees




               context free grammar and ambiguity                    42
In other words:

  A context-free grammar                               G is ambiguous

  if   some string         w L(G ) has:

       two or more leftmost derivations
                    (or rightmost)



                  context free grammar and ambiguity                    43
Why do we care about ambiguity?
                 a a a
               take              a            2
     E                                                  E

E         E                                         E       E

a    E             E                       E            E   a

     a              a                       a           a
               context free grammar and ambiguity           44
2 2 2

    E                                                E

E       E                                        E       E

2   E           E                       E            E   2

    2            2                       2           2
            context free grammar and ambiguity           45
2 2 2 6                                         2 2 2 8
       6                                                8
      E                                                 E
 2         4                                        4        2
E          E                                        E        E
      2             2                    2               2
2     E            E                      E             E    2

      2             2                       2           2
               context free grammar and ambiguity             46
Correct result:   2 2 2 6

                        6
                       E
             2                            4
            E                             E
                       2                                2
             2         E                               E

                        2                              2
                  context free grammar and ambiguity        47
• Ambiguity is bad for programming languages

• We want to remove ambiguity




                context free grammar and ambiguity   48
We fix the ambiguous grammar:
     E    E E | E E | (E) | a

New non-ambiguous grammar:                          E   E T
                                                    E   T
                                                    T   T F
                                                    T   F
                                                    F   (E)
               context free grammar and ambiguity   F   a     49
E   E T   T T        F T                    a T          a T F
    a F F   a a F                      a a a
                                               E             a a a
E    E T
                            E                            T
E   T
T   T F                     T                        T           F
T   F
                            F                        F           a
F   (E)
F    a                       a                       a
                context free grammar and ambiguity                   50
Unique derivation tree

           E                              a a a
    E                          T

     T                T                        F

     F                F                        a

     a                 a
          context free grammar and ambiguity       51
The grammar   G:             E                 E T
                            E                 T
                            T                 T F
                            T                 F
                            F                 (E)
                             F                 a
is non-ambiguous:
     i.e. EVERY stringw L (G ) has
     a unique derivation tree
               context free grammar and ambiguity    52
Inherent Ambiguity

Some context free languages
 have only ambiguous grammars


    Example:             n n m                            n m m
                 L {a b c }                              {a b c }


S      S1 | S2     S1             S1c | A                 S2    aS2 | B
                   A            aAb |                     B    bBc |
                    context free grammar and ambiguity                 53
n n n
The string     a b c
has two derivation trees

          S                                                  S

          S1                                                 S2

     S1         c                                        a        S2


                    context free grammar and ambiguity                 54
Compilers




context free grammar and ambiguity      55
Machine Code
  Program                                               Add v,v,0
v = 5;                                                  cmp v,5
if (v>5)                                                jmplt ELSE
    x = 12 + v;                                         THEN:
while (x !=3) {           Compiler
                                                          add x, 12,v
  x = x - 3;                                            ELSE:
  v = 10;                                               WHILE:
}                                                       cmp x,3
......                                                  ...
                  context free grammar and ambiguity                    56
A parser knows the grammar
                                of the programming language

             Lexical
Compiler                                                  parser
             analyzer



input                                                                 output

                                                                   machine
  program
            Lexical analyzer : analyze the given input             code
            is composed of (identifier, or an expression,                      57

            or a statement, etc)
                     context free grammar and ambiguity
Parser
PROGRAM  STMT_LIST
STMT_LIST STMT; STMT_LIST | STMT;
STMT EXPR | IF_STMT | WHILE_STMT
            | { STMT_LIST }

EXPR  EXPR + EXPR | EXPR - EXPR | ID
IF_STMT     if (EXPR) then STMT
        | if (EXPR) then STMT else STMT
WHILE_STMT while (EXPR) do STMT

             context free grammar and ambiguity   58
The parser finds the derivation
      of a particular input
                                 derivation
               Parser
 input                                                E => E + E
             E -> E + E
                                                        => E + E * E
10 + 2 * 5      |E*E
                                                        => 10 + E*E
                | INT
                                                        => 10 + 2 * E
                                                        => 10 + 2 * 5

                 context free grammar and ambiguity                     59
derivation tree
 derivation
                                                       E

E => E + E                                     E       +       E
  => E + E * E
  => 10 + E*E                                  10
                                                           E   *   E
  => 10 + 2 * E
  => 10 + 2 * 5                                            2       5

                  context free grammar and ambiguity               60
derivation tree

      E                                                machine code

E      +      E                                        mult a, 2, 5
                                                       add b, 10, a
10
          E   *          E

          2              5

                  context free grammar and ambiguity                  61
Parsing




context free grammar and ambiguity             62
Parser
input
           grammar                            derivation
string




         context free grammar and ambiguity                63
Example:

                   Parser
               S                 SS             derivation
input
               S                aSb
aabb                                                ?
               S                bSa
               S
           context free grammar and ambiguity                64
Exhaustive Search
           S        SS | aSb | bSa |

Phase 1:        S           SS                            Find derivation of
                S          aSb                                  aabb
                S          bSa
                S
     All possible derivations of length 1
                     context free grammar and ambiguity                        65
S          SS                            aabb
S         aSb
S         bSa
S


    context free grammar and ambiguity          66
Phase 2                    S                 SS | aSb | bSa |
              S           SS                  SSS
              S           SS                  aSbS                aabb
Phase 1       S           SS                  bSaS
S   SS        S           SS                  S
S   aSb       S           aSb                     aSSb
              S           aSb                     aaSbb
              S           aSb                     abSab
              S           aSb                     ab
                  context free grammar and ambiguity                      67
Phase 2                                S              SS | aSb | bSa |
S      SS     SSS
S      SS     aSbS                                                  aabb
S      SS     S

S      aSb    aSSb
S      aSb    aaSbb
                                                          Phase 3
                        S                aSb                aaSbb      aabb
                     context free grammar and ambiguity                      68
Final result of exhaustive search
                        (top-down parsing)
                    Parser
                       S             SS
  input
                       S            aSb
  aabb
                       S            bSa
                       S
What happen if                                              derivation
there is no such
derivation existed?
I.e. what if w L(G)?       S               aSb                aaSbb      aabb
                       context free grammar and ambiguity                   69
Is this searching method an
         algorithm?

What if w L(G)?




        context free grammar and ambiguity   70
Time complexity of exhaustive search


Suppose there are no productions of the form
                                A                          :   - production


                                A                 B        : unit - production

 Number of phases for string                                   w : 2| w|
    So that after the execution of every phase, either
    (1) the sentential form has additional one or more
    terminal symbols; and/or
    (2) the length of the sentential form is increased by at
    least one.
                      context free grammar and ambiguity                         71
For grammar with         k rules


Time for phase 1:        k


                         k possible derivations




                    context free grammar and ambiguity   72
Time for phase 2:    k    2



                     k    2            possible derivations




                context free grammar and ambiguity            73
Time for phase   2 | w |:               k   2|w|



                           2|w| possible derivations
                         k




                  context free grammar and ambiguity   74
Total time needed for string                          w:

                    2                                  2|w|
          k     k                k

phase 1         phase 2                               phase 2|w|


              Extremely bad!!!
                 context free grammar and ambiguity                75
There exist faster algorithms
for specialized grammars


 Simple grammar:                  A              ax


              ONE symbol                               V*: string
              from                                     of variables

 such that pair   ( A, a ) appears at most once

                  context free grammar and ambiguity                  76
S        aS
S-grammar example:
                                          S        bSS
                                          S        c


Not an S-grammar:                          S       aS
                                           S       bSS | bS
                                           S

              context free grammar and ambiguity              77
Simple grammar:             A               ax

Observe that if G is an S-grammar, then
G has no productions like
                        A                            :   - production

                        A              B             : unit - production

In a derivation process for S-grammar, every
phase will increase one terminal symbol.
                context free grammar and ambiguity                         78
S        aS
S-grammar example:
                                            S        bSS
                                            S        c

Find a (left most)derivation for abcc:
 S    aS     abSS                  abcS              abcc
Find a (left most)derivation for bca:
S     bSS     bcS                 bcaS
 bca L(G) since |bcaS| > | bca |
                context free grammar and ambiguity          79
If G is an S-grammar, then

    in the exhaustive search parsing
    there is only one choice in each phase
    Thus, for any given string w, it
    takes a linear time, O(|w|), to decide
    either w L(G) by providing a
    unique derivation or w L(G).


Not every CF grammar can be converted into an S-grammar.

                    context free grammar and ambiguity     80
S-grammar Example

Let G = (V, T, S, P) be an S-grammar:


  Give an expression for the maximum
  size of P in terms of |V| and |T|.

  Is it possible for an s-grammar to be
  ambiguous?



                context free grammar and ambiguity   81
For GENERAL context-free grammars:
There exists a parsing algorithm
that parses a string w
in time | w |3

 The CYK membership algorithm                      (on 6.3)


 5.2 HW p.144
 1~9,11~15,17~19


              context free grammar and ambiguity              82

More Related Content

PPT
Grammar
PPT
Properties of cfg
PDF
Context free langauges
PPT
Context free grammars
PPT
context free language
PPT
2. context free langauages
PDF
Lecture: Context-Free Grammars
PPTX
CONTEXT FREE GRAMMAR
Grammar
Properties of cfg
Context free langauges
Context free grammars
context free language
2. context free langauages
Lecture: Context-Free Grammars
CONTEXT FREE GRAMMAR

What's hot (20)

PPT
Context free languages
PPT
Context free grammar
PPTX
Deterministic context free grammars &non-deterministic
PPTX
Context Free Grammar
PPT
Lecture 3,4
PPTX
Theory of automata and formal language
PPT
Lecture 7: Definite Clause Grammars
PPT
Chomsky by zeeshan khan and Raheel Khan
PPT
Theory of Automata
PPT
Class5
PPT
Regular expressions and languages pdf
PPT
PPT
Lecture 5
PDF
Flat unit 3
PDF
Chapter1 Formal Language and Automata Theory
PDF
Automata
PDF
PPT
Regular expressions-Theory of computation
PPTX
Csr2011 june17 15_15_kaminski
PPT
Context free languages
Context free grammar
Deterministic context free grammars &non-deterministic
Context Free Grammar
Lecture 3,4
Theory of automata and formal language
Lecture 7: Definite Clause Grammars
Chomsky by zeeshan khan and Raheel Khan
Theory of Automata
Class5
Regular expressions and languages pdf
Lecture 5
Flat unit 3
Chapter1 Formal Language and Automata Theory
Automata
Regular expressions-Theory of computation
Csr2011 june17 15_15_kaminski
Ad

Viewers also liked (19)

PPTX
Context free grammars
PDF
Pumping Lemma and Regular language or not?
PPTX
Theory of Automata and formal languages Unit 3
PDF
Push Down Automata (PDA)
PDF
Context free presentation
PPT
Introduction to fa and dfa
PDF
Itk328 ex5 1
DOC
Netautomata1
PDF
Reintroducing Web Technology
PPTX
4 compiler lab - Syntax Ana
PPT
Class8
PPT
Simplifiaction of grammar
PPT
Simplifies and normal forms - Theory of Computation
PPTX
W6 lecture notes
PDF
Computational linguistics
PPT
Os5 2
PPT
Os4 2
PPT
Class9
PPT
Os2
Context free grammars
Pumping Lemma and Regular language or not?
Theory of Automata and formal languages Unit 3
Push Down Automata (PDA)
Context free presentation
Introduction to fa and dfa
Itk328 ex5 1
Netautomata1
Reintroducing Web Technology
4 compiler lab - Syntax Ana
Class8
Simplifiaction of grammar
Simplifies and normal forms - Theory of Computation
W6 lecture notes
Computational linguistics
Os5 2
Os4 2
Class9
Os2
Ad

Similar to Class7 (20)

PPT
context free grammars automata therory and compiler design
PDF
contextfreegrammars-120925004035-phpapp02.pdf
PDF
Hw2 2017-spring
PPTX
L_2_apl.pptx
PPT
UNIT III REGULAR GRAMMAR. in automatappt
PPT
Lesson 01 for Computer Science Data Analysis
PPTX
Alphabets , strings, languages and grammars
PDF
Pumping lemma for cfl
PPT
Theory of Automata Lesson 01
PPT
Class5
PPTX
Chapter Two - Regular Expression and Regular languages.pptx
PPT
Closure Properties of Regular Languages.ppt
PPT
Lecture_Notes_AutomatContext Free Languages.ppt
PDF
Lex analysis
PPT
Context Free Languages by S.Mandal-1.ppt
PPT
Lesson-01-29092022-081117pm.ppt
PPT
Theory of Automata - Power Point Slides Lecture 01).ppt
PPT
Lecture 3,4
PDF
Ch03
context free grammars automata therory and compiler design
contextfreegrammars-120925004035-phpapp02.pdf
Hw2 2017-spring
L_2_apl.pptx
UNIT III REGULAR GRAMMAR. in automatappt
Lesson 01 for Computer Science Data Analysis
Alphabets , strings, languages and grammars
Pumping lemma for cfl
Theory of Automata Lesson 01
Class5
Chapter Two - Regular Expression and Regular languages.pptx
Closure Properties of Regular Languages.ppt
Lecture_Notes_AutomatContext Free Languages.ppt
Lex analysis
Context Free Languages by S.Mandal-1.ppt
Lesson-01-29092022-081117pm.ppt
Theory of Automata - Power Point Slides Lecture 01).ppt
Lecture 3,4
Ch03

More from issbp (20)

PPT
Ch11 input output systems
PPT
Os10 2
PPT
Os10
PPT
Os9 2
PPT
Os9
PPT
Os8 2
PPT
Os8
PPT
Os7 2
PPT
Os7
PPT
Os6 2
PPT
Os6
PPT
Os5
PPT
Os4
PPT
Os3 2
PPT
Os3
PPT
Os2 2
PPT
Class6
PPT
Class4
PPT
Class3
PPT
Class2
Ch11 input output systems
Os10 2
Os10
Os9 2
Os9
Os8 2
Os8
Os7 2
Os7
Os6 2
Os6
Os5
Os4
Os3 2
Os3
Os2 2
Class6
Class4
Class3
Class2

Class7

  • 1. Context-Free Languages Derivation tree, parsing, & ambiguity context free grammar and ambiguity 1
  • 2. n n R {a b } {ww } Regular Languages context free grammar and ambiguity 2
  • 3. Context-Free Languages n n R {a b } {ww } Regular Languages context free grammar and ambiguity 3
  • 4. Context-Free Languages Context-Free Pushdown Grammars Automata stack automaton context free grammar and ambiguity 4
  • 5. Context-Free Grammars context free grammar and ambiguity 5
  • 6. n n L(G ) {a b : n 0} is not regular …. (((( )))) we relax the restriction of regular grammar context free grammar and ambiguity 6
  • 7. n n L(G ) {a b : n 0} is not regular …. A context-free grammar G : S aSb S The grammar G is linear but not regular. context free grammar and ambiguity 7
  • 8. n n L(G ) {a b : n 0} is not regular …. Regular grammar (e.g., a right linear grammar): A XB or A  X where A, B V, and X T* Context Free A  X where X (V T)* Grammar context free grammar and ambiguity 8
  • 9. Def. Context-Free Grammars (CFG) Grammar G (V , T , S , P ) Variables Terminal Start symbols variable Productions of the form: A x x is string of variables and terminals Note: A regular grammar is a regular grammar. context free grammar and ambiguity 9
  • 10. Def. Context-Free Languages (CFL) A language L is context-free if and only if there is a context free grammar G with L L (G ) Note: To show L is a CFL find a CFG for L. Note: A regular language is also a CFL. context free grammar and ambiguity 10
  • 11. n n is a Context-Free L(G ) {a b : n 0} Language with context-free grammar G: S aSb S A derivation: S aSb aaSbb aaaSbbb aaabbb context free grammar and ambiguity 11
  • 12. Another Example A context-free grammar G: S aSa S bSb A derivation: S S aSa abSba abaSaba abaaba R L(G ) {ww : w {a, b}*} is a Context-Free Language context free grammar and ambiguity 12
  • 13. A non Linear Examples A context-free grammar G: S aSb S SS S What is the L(G)? A derivation: S SS aSbS abS abaSb abaaSbb abaabb () (( )) context free grammar and ambiguity 13
  • 14. S aSb S SS S () ((( ))) (( )) L(G ) {w : na ( w) nb ( w), and na (v) nb (v) in any prefix v} How to prove the given grammar indeed generates the language? Homework #4 only shows L(G) L. context free grammar and ambiguity 14
  • 15. L(G) L: by induction on the number of steps in deriving a sentential form Any sentential form obtained from the grammar G: if by one step (rule2 & 3 do not generate any terminal symbols at all, i.e. na(w)=nb(w) = 0, thus is true; if it is from rule 1: SaSb, then it satisfies the condition of na(w)=nb(w) and the prefix condition. Assume any sentential obtained from n steps it is true, Now assume a sentential form of (n+1) steps: if the last step is by rule 2 or 3, then no new symbols is added, therefore it satisfies the condition since it satisfies on previous step; it the last step is by rule 1, then as can be seen that a is added before b is added (from left to right), thus the prefix condition is also satisfied. L L(G): by induction on |w|, w L. By observing the definition of L, w L then |w| is even, let |w|=2n. and if |w| >= 2, w = a…..b (the first symbol is a and the last symbol is b). |w|=0: then w= , then w L(G). Assume |w|=2n, w L(G) is true for n >= 0. Now |w| = 2n+2, then w=aub with |u|=2n, and u L. by induction assumption, u L(G), i.e. there exist a derivation s * u, thus S aSb * aub = w. context free grammar and ambiguity 15
  • 16. Show L={anbmcn: n, m 0 } is CF. Show L={anbncm: n, m 0 } is CF. context free grammar and ambiguity 16
  • 17. True or False If L is not regular then L is context free. If L is not context free then L is not regular From grammar G: S AB, A aA| , B bB| , thus L(G) is CF & not regular. context free grammar and ambiguity 17
  • 18. Examples of showing languages are Context Free Show { anbm : n = m+3} is CF. Show { anbm : n m+3} is CF. Try hw # 7 (a) ~ (d) p.133 context free grammar and ambiguity 18
  • 19. {anbm: n m+3} S1 is for n> m+3 & S2 is for n < m+3 & S  S1 | S2 S1: n m+4, i.e., n = m+t for t=4, 5, 6, …, i.e. anbm= am+tbm: thus, S1  aaaaB | aS1, B bB | . S2: n m+2, i.e, n+t =m+2, m = n-2 + t for t=0, 1, 2, …, i.e, anbm= anbn-2+t for t=0,1,2, … which implies anbm= anbn-2 , anbn-1 , anbn , anbn+1 , anbn+2 , .... (anbn-2 :) D  aa K, K aKb | ; (anbn-1:) E aK; (anbn , anbn+1 , anbn+2 , .... ) F Fb | K; and S2  D | E | F
  • 20. Examples of showing languages are Context Free Show { w: na(w) = nb(w)} is CF. Show { w: na(w) > nb(w)} is CF. Show { w: na(w) = 2 nb(w)} is CF. Try hw # 7 (e) ~ (g) p.133 context free grammar and ambiguity 20
  • 21. S aSb | bSa |SS| (for na = nb) S1 for na(w) >nb(w) S1 aS1 | aS | SS1 { w {a,b,c}*: |w|=3na(w)} E  aEbEc | aEcEb | bEaEc | bEaEc | cEaEb | cEbEa | EE | (this is for na = nb = nc) S  aEKEK | KEaEK | KEKEa K  b | c. context free grammar and ambiguity 21
  • 22. Derivation Order for w = aab in the CFG: 1. S AB 2. A aaA 4. B Bb 3. A 5. B Leftmost derivation: 1 2 3 4 5 S AB aaAB aaB aaBb aab Rightmost derivation: 1 4 5 2 3 S AB ABb Ab aaAb aab context free grammar and ambiguity 22
  • 23. Derivation Trees Another way of showing derivation, independent of the order in which productions are used. context free grammar and ambiguity 23
  • 24. S AB A aaA | B Bb | S AB S A B Every node to its children is corresponding to a production rule in the grammar context free grammar and ambiguity 24
  • 25. S AB A aaA | B Bb | S AB aaAB S A B a a A context free grammar and ambiguity 25
  • 26. S AB A aaA | B Bb | S AB aaAB aaABb S A B a a A B b context free grammar and ambiguity 26
  • 27. S AB A aaA | B Bb | S AB aaAB aaABb aaBb S A B a a A B b context free grammar and ambiguity 27
  • 28. S AB A aaA | B Bb | S AB aaAB aaABb aaBb aab S A Derivation Tree A B a a A B b Every leaf has a label from T { } context free grammar and ambiguity 28
  • 29. S AB A aaA | B Bb | S AB aaAB aaABb aaBb aab Derivation Tree S A B yield a a A B b aa b aab context free grammar and ambiguity 29
  • 30. derivation order doesn’t matter Leftmost: S AB aaAB aaB aaBb aab Rightmost: S AB ABb Ab aaAb aab S Same derivation tree A B a a A B b context free grammar and ambiguity 30
  • 31. S AB A aaA | B Bb | S Derivation Tree shows which rules are A B used in obtaining a w, but do not give the order of their applications. a a A B b We can find the corresponding left-most or right-most derivations from a given derivation tree easily. context free grammar and ambiguity 31
  • 32. Partial Derivation Trees Every leaf has a label from T { } V S AB A aaA | B Bb | The yield of a partial derivation S AB tree a sentential form of a derivation Partial derivation S tree with root S A B context free grammar and ambiguity 32
  • 33. sentential S AB aaAB form Partial derivation S tree with root S A B yield a a A aaAB context free grammar and ambiguity 33
  • 34. G: A CFG then Thm. 5.1 on p.132 Every w L(G) there exists a derivation tree with yield = w. a deriation with the sentential form w Conversely, the yield of any derivation tree w, w L(G) partial derivation tree tG (with root S), w Homework for 5.1 (p.133) : 2~5, 7, 8, 11, 13~24 Hand in: 7bef, 8bdg, 13, 15, 17, 18, 21 Prove by induction on the number of steps in the derivation. Check with the book on p.132. context free grammar and ambiguity 34
  • 35. Ambiguity context free grammar and ambiguity 35
  • 36. E E E | E E | (E) | a a a a leftmost derivation E E E E a E a E E a a E a a*a E E a E E a a context free grammar and ambiguity 36
  • 37. E E E | E E | (E) | a a a a leftmost derivation E E E E E E a E E E a a E a a a E E E E a a a context free grammar and ambiguity 37
  • 38. E E E | E E | (E) | a a a a Two derivation trees E E E E E E a E E E E a a a a a context free grammar and ambiguity 38
  • 39. The grammarE E E | E E | (E) | a is ambiguous: Because a string of L(G) has two derivation trees E E a a a E E E E a E E E E a a a a a context free grammar and ambiguity 39
  • 40. Or we can say A grammar is ambiguous…. context free grammar and ambiguity 40
  • 41. The grammarE E E | E E | (E) | a is ambiguous: There are two different leftmost derivations for a a a E E E a E a E E a a E a a*a E E E E E E a E E a a E a a a context free grammar and ambiguity 41
  • 42. Definition: A context-free grammar G is ambiguous if some string w L(G ) has two or more derivation trees context free grammar and ambiguity 42
  • 43. In other words: A context-free grammar G is ambiguous if some string w L(G ) has: two or more leftmost derivations (or rightmost) context free grammar and ambiguity 43
  • 44. Why do we care about ambiguity? a a a take a 2 E E E E E E a E E E E a a a a a context free grammar and ambiguity 44
  • 45. 2 2 2 E E E E E E 2 E E E E 2 2 2 2 2 context free grammar and ambiguity 45
  • 46. 2 2 2 6 2 2 2 8 6 8 E E 2 4 4 2 E E E E 2 2 2 2 2 E E E E 2 2 2 2 2 context free grammar and ambiguity 46
  • 47. Correct result: 2 2 2 6 6 E 2 4 E E 2 2 2 E E 2 2 context free grammar and ambiguity 47
  • 48. • Ambiguity is bad for programming languages • We want to remove ambiguity context free grammar and ambiguity 48
  • 49. We fix the ambiguous grammar: E E E | E E | (E) | a New non-ambiguous grammar: E E T E T T T F T F F (E) context free grammar and ambiguity F a 49
  • 50. E E T T T F T a T a T F a F F a a F a a a E a a a E E T E T E T T T F T T F T F F F a F (E) F a a a context free grammar and ambiguity 50
  • 51. Unique derivation tree E a a a E T T T F F F a a a context free grammar and ambiguity 51
  • 52. The grammar G: E E T E T T T F T F F (E) F a is non-ambiguous: i.e. EVERY stringw L (G ) has a unique derivation tree context free grammar and ambiguity 52
  • 53. Inherent Ambiguity Some context free languages have only ambiguous grammars Example: n n m n m m L {a b c } {a b c } S S1 | S2 S1 S1c | A S2 aS2 | B A aAb | B bBc | context free grammar and ambiguity 53
  • 54. n n n The string a b c has two derivation trees S S S1 S2 S1 c a S2 context free grammar and ambiguity 54
  • 55. Compilers context free grammar and ambiguity 55
  • 56. Machine Code Program Add v,v,0 v = 5; cmp v,5 if (v>5) jmplt ELSE x = 12 + v; THEN: while (x !=3) { Compiler add x, 12,v x = x - 3; ELSE: v = 10; WHILE: } cmp x,3 ...... ... context free grammar and ambiguity 56
  • 57. A parser knows the grammar of the programming language Lexical Compiler parser analyzer input output machine program Lexical analyzer : analyze the given input code is composed of (identifier, or an expression, 57 or a statement, etc) context free grammar and ambiguity
  • 58. Parser PROGRAM STMT_LIST STMT_LIST STMT; STMT_LIST | STMT; STMT EXPR | IF_STMT | WHILE_STMT | { STMT_LIST } EXPR EXPR + EXPR | EXPR - EXPR | ID IF_STMT if (EXPR) then STMT | if (EXPR) then STMT else STMT WHILE_STMT while (EXPR) do STMT context free grammar and ambiguity 58
  • 59. The parser finds the derivation of a particular input derivation Parser input E => E + E E -> E + E => E + E * E 10 + 2 * 5 |E*E => 10 + E*E | INT => 10 + 2 * E => 10 + 2 * 5 context free grammar and ambiguity 59
  • 60. derivation tree derivation E E => E + E E + E => E + E * E => 10 + E*E 10 E * E => 10 + 2 * E => 10 + 2 * 5 2 5 context free grammar and ambiguity 60
  • 61. derivation tree E machine code E + E mult a, 2, 5 add b, 10, a 10 E * E 2 5 context free grammar and ambiguity 61
  • 62. Parsing context free grammar and ambiguity 62
  • 63. Parser input grammar derivation string context free grammar and ambiguity 63
  • 64. Example: Parser S SS derivation input S aSb aabb ? S bSa S context free grammar and ambiguity 64
  • 65. Exhaustive Search S SS | aSb | bSa | Phase 1: S SS Find derivation of S aSb aabb S bSa S All possible derivations of length 1 context free grammar and ambiguity 65
  • 66. S SS aabb S aSb S bSa S context free grammar and ambiguity 66
  • 67. Phase 2 S SS | aSb | bSa | S SS SSS S SS aSbS aabb Phase 1 S SS bSaS S SS S SS S S aSb S aSb aSSb S aSb aaSbb S aSb abSab S aSb ab context free grammar and ambiguity 67
  • 68. Phase 2 S SS | aSb | bSa | S SS SSS S SS aSbS aabb S SS S S aSb aSSb S aSb aaSbb Phase 3 S aSb aaSbb aabb context free grammar and ambiguity 68
  • 69. Final result of exhaustive search (top-down parsing) Parser S SS input S aSb aabb S bSa S What happen if derivation there is no such derivation existed? I.e. what if w L(G)? S aSb aaSbb aabb context free grammar and ambiguity 69
  • 70. Is this searching method an algorithm? What if w L(G)? context free grammar and ambiguity 70
  • 71. Time complexity of exhaustive search Suppose there are no productions of the form A : - production A B : unit - production Number of phases for string w : 2| w| So that after the execution of every phase, either (1) the sentential form has additional one or more terminal symbols; and/or (2) the length of the sentential form is increased by at least one. context free grammar and ambiguity 71
  • 72. For grammar with k rules Time for phase 1: k k possible derivations context free grammar and ambiguity 72
  • 73. Time for phase 2: k 2 k 2 possible derivations context free grammar and ambiguity 73
  • 74. Time for phase 2 | w |: k 2|w| 2|w| possible derivations k context free grammar and ambiguity 74
  • 75. Total time needed for string w: 2 2|w| k k  k phase 1 phase 2 phase 2|w| Extremely bad!!! context free grammar and ambiguity 75
  • 76. There exist faster algorithms for specialized grammars Simple grammar: A ax ONE symbol V*: string from of variables such that pair ( A, a ) appears at most once context free grammar and ambiguity 76
  • 77. S aS S-grammar example: S bSS S c Not an S-grammar: S aS S bSS | bS S context free grammar and ambiguity 77
  • 78. Simple grammar: A ax Observe that if G is an S-grammar, then G has no productions like A : - production A B : unit - production In a derivation process for S-grammar, every phase will increase one terminal symbol. context free grammar and ambiguity 78
  • 79. S aS S-grammar example: S bSS S c Find a (left most)derivation for abcc: S aS abSS abcS abcc Find a (left most)derivation for bca: S bSS bcS bcaS bca L(G) since |bcaS| > | bca | context free grammar and ambiguity 79
  • 80. If G is an S-grammar, then in the exhaustive search parsing there is only one choice in each phase Thus, for any given string w, it takes a linear time, O(|w|), to decide either w L(G) by providing a unique derivation or w L(G). Not every CF grammar can be converted into an S-grammar. context free grammar and ambiguity 80
  • 81. S-grammar Example Let G = (V, T, S, P) be an S-grammar: Give an expression for the maximum size of P in terms of |V| and |T|. Is it possible for an s-grammar to be ambiguous? context free grammar and ambiguity 81
  • 82. For GENERAL context-free grammars: There exists a parsing algorithm that parses a string w in time | w |3 The CYK membership algorithm (on 6.3) 5.2 HW p.144 1~9,11~15,17~19 context free grammar and ambiguity 82