Professional Documents
Culture Documents
FL 3
FL 3
FL 3
A s
Variable String of
variables and
terminals
4
Example of Context-Free Grammar
S aSb |
productions
P {S aSb, S }
G V , T , S , P
V {S }
T {a, b} start variable
variables
terminals
5
Another Example
Context-free grammar G:
S aSa | bSb |
Example derivations:
S aSa abSba abba
S aSa abSba abaSaba abaaba
R
L(G ) {ww : w {a, b}*}
Palindromes of even length
9
Another Example
Context-free grammar G:
S aSb | SS |
Example derivations:
S SS aSbS abS ab
S SS aSbS abS abaSb abab
L(G ) {w : na ( w) nb ( w),
and na (v) nb (v)
Describes
in any prefix v}
matched
parentheses: () ((( ))) (( )) a (, b )
10
Derivation Order
1. S AB 2. A aaA 4. B Bb
3. A 5. B
11
1. S AB 2. A aaA 4. B Bb
3. A 5. B
1 2 3 4 5
S AB aaAB aaB aaBb aab
1 4 5 2 3
S AB ABb Ab aaAb aab
At each step, we substitute the
rightmost variable
13
1. S AB 2. A aaA 4. B Bb
3. A 5. B
15
S AB A aaA | B Bb |
S AB
S
A B
yield AB
16
S AB A aaA | B Bb |
S AB aaAB
S
A B
yield aaAB
a a A
17
S AB A aaA | B Bb |
S AB aaAB aaABb
S
A B
a a A B b
yield aaABb
18
S AB A aaA | B Bb |
S AB aaAB aaABb aaBb
S
A B
a a A B b
yield
aaBb aaBb
19
S AB A aaA | B Bb |
S AB aaAB aaABb aaBb aab
Derivation Tree S
(parse tree)
A B
a a A B b
yield
aab aab
20
Sometimes, derivation order doesn’t matter
Leftmost derivation:
S AB aaAB aaB aaBb aab
Rightmost derivation:
S AB ABb Ab aaAb aab
S
Give same A B
derivation tree
a a A B b
21
Ambiguity
22
Grammar for mathematical expressions
E E E | E E | (E) | a
Example strings:
(a a ) a (a a (a a ))
23
E E E | E E | (E) | a
E E E a E a EE
E
a a E a a*a
E E
A leftmost derivation
for a a a
a E E
a a
24
E E E | E E | (E) | a
a a
25
E E E | E E | (E) | a
E E E E
a E E E E a
a a a a
26
take a2
a a a 2 22
E E
E E E E
2 E E E E 2
2 2 2 2
27
Good Tree Bad Tree
2 22 6 2 22 8
6 Compute expression result 8
E using the tree E
2 4 4 2
E E E E
2 2 2 2
2 E E E E 2
2 2 2 2
28
Ambiguous Grammar:
A context-free grammar G is ambiguous
if there is a string w L(G )which has:
E E E E
a E E E E a
a a a a
30
E E E | E E | (E) | a
this grammar is ambiguous also because
string a a a has two leftmost derivations
E E E a E a EE
a a E a a*a
32