Class 5
Class 5
1
Grammars
Grammars express languages
predicate verb
2
article a
article the
noun cat
noun dog
verb runs
verb walks
3
A derivation of “the dog walks”:
4
A derivation of “a cat runs”:
5
Language of the grammar:
L = { “a cat runs”,
“a cat walks”,
“the cat runs”,
“the cat walks”,
“a dog runs”,
“a dog walks”,
“the dog runs”,
“the dog walks” }
6
Notation
Production Rules
noun cat
noun dog
Variable Terminal
7
Another Example
Grammar: S aSb
S
Derivation of sentenceab :
S aSb ab
S aSb S
8
Grammar: S aSb
S
S aSb S
9
Other derivations:
10
Language of the grammar
S aSb
S
n n
L {a b : n 0}
11
More Notation
Grammar G V , T , S , P
V : Set of variables
GrammarG : S aSb
S
G V , T , S , P
V {S } T {a, b}
P {S aSb, S }
13
More Notation
Sentential Form:
A sentence that contains
variables and terminals
Example:
Instead of:
15
*
In general we write: w1 wn
If: w1 w2 w3 wn
16
*
By default: w w
17
Example
Grammar Derivations
S aSb *
S
S
*
S ab
*
S aabb
*
S aaabbb
18
Example
Grammar Derivations
S aSb
S aaSbb
S
aaSbb aaaaaSbbbbb
19
Another Grammar Example
Grammar G : S Ab
A aAb
A
Derivations:
S ⇒ Ab ⇒ b
S ⇒ Ab ⇒ aAbb ⇒ abb
S ⇒ Ab ⇒ aAbb ⇒ aaAbbb ⇒ aabbb
20
More Derivations
S Ab aAbb aaAbbb aaaAbbbb
aaaaAbbbbb aaaabbbbb
S aaaabbbbb
S aaaaaabbbbbbb
n n
S a b b
21
Language of a Grammar
For a grammarG
with start variable S :
L(G ) {w : S w}
String of terminals
22
Example
For grammarG : S Ab
A aAb
A
n n
L(G ) {a b b : n 0}
n n
Since: S a b b
23
A Convenient Notation
A aAb
A aAb |
A
article a
article a | the
article the
24
Linear Grammars
25
Linear Grammars
Grammars with
at most one variable at the right side
of a production
Examples: S aSb S Ab
S A aAb
A
26
A Non-Linear Grammar
Grammar G : S SS
S
S aSb
S bSa
Number of a in string w
27
Another Linear Grammar
Grammar G : S A
A aB |
B Ab
n n
L(G ) {a b : n 0}
28
Right-Linear Grammars
All productions have form: A xB
or
A x
29
Left-Linear Grammars
All productions have form: A Bx
or
A x
B a
30
Regular Grammars
31
Regular Grammars
A regular grammar is any
right-linear or left-linear grammar
Examples:
G1 G2
S abS S Aab
S a A Aab | B
B a
32
Observation
Regular grammars generate regular
languages
G2
Examples:
G1 S Aab
S abS A Aab | B
S a B a
34
Theorem
Languages
Generated by
Regular Grammars
Regular
Languages
35
Theorem - Part 1
Languages
Generated by Regular
Languages
Regular Grammars
36
Theorem - Part 2
Languages
Generated by Regular
Languages
Regular Grammars
37
Proof – Part 1
Languages
Generated by Regular
Languages
Regular Grammars
38
The case of Right-Linear Grammars
Example: S aA | B
A aa B
B b B|a
40
Construct NFA M such that
every state is a grammar variable:
A
S special
VF
final state
B
S aA | B
A aa B
B b B|a 41
Add edges for each production:
a A
S VF
B
S aA
42
a A
S VF
B
S aA | B
43
A
a a
S a VF
B
S aA | B
A aa B
44
A
a a
S a VF
B
S aA | B
b
A aa B
B bB 45
A
a a
S a VF
a
B
S aA | B
b
A aa B
B bB | a 46
A
a a
S a VF
a
B
Vi a1a2 am
49
We construct the NFA M such that:
Vi a1 a2 ……
am V
j
…
51
For each production:Vi a1a2 am
Vi a1 a2 ……
am
VF
…
52
Resulting NFA M looks like this:
a9
a2 a4
a1 V1 V3
a3 a5
V0
a3 a4
VF
a8 a9
V2 a5
V4
Proof idea:
We will construct a right-linear
R
grammarG with L(G ) L(G)
54
Since G is left-linear grammar
the productions look like:
A Ba1a2 ak
A a1a2 ak
55
Construct right-linear grammarG
Left A Ba1a2 ak
G
linear
A → Bv
Right A ak a2 a1B
G
linear
R
A v B
56
Construct right-linear grammarG
Left A a1a2 ak
G
linear
A v
Right
G A ak a2 a1
linear
R
A v
57
R
It is easy to see that: L(G ) L(G)
R
L(G) L(G) L(G )
Regular Regular Regular
Language Language Language
58
Proof - Part 2
Languages
Generated by Regular
Languages
Regular Grammars
59
Any regular language L is generated
by some regular grammar G
Proof idea:
Let M be the NFA with L L(M ) .
M a
a
q0 q1 q2
b
q0 aq1
q3
62
b
M a
a
q0 q1 q2
q0 aq1 b
q1 bq1 q3
q1 aq2
63
b
M a
a
q0 q1 q2
q0 aq1
q1 bq1 b
q1 aq2 q3
q2 bq3
64
L(G ) L( M ) L
G b
q0 aq1 M a
a
q0 q1 q2
q1 bq1
q1 aq2 b
q2 bq3 q3
q3 q1
q3
65
In General
a
For any transition: q p
Add production: q ap
Add production: qf
67
Since G is right-linear grammar
68