Академический Документы
Профессиональный Документы
Культура Документы
Grammars
Grammars express languages Example: the English language
predicate noun
article p a article p the noun p cat noun p dog verb p runs verb p walks
Courtesy Costas Busch - RPI 3
A derivation of the dog walks: sentence noun _ phrase noun _ phrase article the noun noun verb predicate verb verb
A derivation of a cat runs: sentence noun _ phrase noun _ phrase article a noun noun verb predicate verb verb
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 }
Courtesy Costas Busch - RPI 6
Notation
Production Rules noun p cat noun p dog Variable Terminal
Another Example
Grammar:
S p aSb S pP
Derivation of sentence
ab :
S aSb ab
S p aSb
S pP
Courtesy Costas Busch - RPI 8
Grammar:
S p aSb S pP
Derivation of sentence
aabb :
S p aSb
S pP
9
Other derivations:
10
S p aSb S pP L ! {a b : n u 0}
n n
11
More Notation
Grammar
G ! V , T , S , P
S:
P:
Example
Grammar
S p aSb S pP
G ! V , T , S , P
V ! {S } T ! {a, b}
P ! {S p aSb, S p P}
Courtesy Costas Busch - RPI 13
More Notation
Sentential Form: A sentence that contains variables and terminals Example:
sentence
14
* We write:
S aaabbb
Instead of:
* In general we write:
w1 wn
If:
w1 w2 w3 . wn
16
* By default:
w w
17
Example
Grammar
S p aSb S pP
Derivations *
S P
*
S ab
*
S aabb
*
S aaabbb
Courtesy Costas Busch - RPI 18
Example
Grammar Derivations
S p aSb S pP
S aaSbb
aaSbb aaaaaSbbbbb
19
Derivations:
S S S
Ab b Ab aAbb Ab aAbb
More Derivations
S aaaabbbbb
S aaaaaabbbbbbb
S a b b
Courtesy Costas Busch - RPI 21
n n
Language of a Grammar
For a grammar G with start variable
L(G ) ! {w : S w}
String of terminals
Courtesy Costas Busch - RPI 22
Example
For grammar
G:
S p Ab A p aAb ApP
L(G ) ! {a b b : n u 0}
Since:
n n
S a b b
Courtesy Costas Busch - RPI 23
n n
A Convenient Notation
A p aAb ApP
A p aAb | P
article p a | the
Courtesy Costas Busch - RPI 24
Linear Grammars
25
Linear Grammars
Grammars with at most one variable at the right side of a production
Examples:
S p aSb S pP
S p Ab A p aAb ApP
26
A Non-Linear Grammar
Grammar
G:
S p SS S pP S p aSb S p bSa
L(G ) ! {w : na ( w) ! nb ( w)}
Number of
a in string w
Courtesy Costas Busch - RPI 27
G :
SpA A p aB | P B p Ab
L(G ) ! {a b : n u 0}
Courtesy Costas Busch - RPI 28
n n
Right-Linear Grammars
All productions have form:
A p xB
or
Ap x
Example:
S p abS S pa
string of terminals
29
Left-Linear Grammars
All productions have form:
A p Bx
or
Ap x
Example:
string of terminals
30
Regular Grammars
31
Regular Grammars
A regular grammar is any right-linear or left-linear grammar Examples:
G1 S p abS S pa
Courtesy Costas Busch - RPI
Observation
Regular grammars generate regular languages Examples:
G1 S p abS S pa
L(G1 ) ! (ab) * a
34
Theorem
Languages Generated by Regular Grammars
Regular Languages
35
Theorem - Part 1
Languages Generated by Regular Grammars
Regular Languages
36
Theorem - Part 2
Languages Generated by Regular Grammars
Regular Languages
37
Proof Part 1
Languages Generated by Regular Grammars
Regular Languages
38
G be a right-linear grammar
L(G ) is regular
We will prove:
Proof idea:
M
39
Grammar
G is right-linear S p aA | B A p aa B B pb B|a
Example:
40
A
S
VF B
S p aA | B A p aa B B pb B|a
Courtesy Costas Busch - RPI 41
a S
A VF B
S p aA
Courtesy Costas Busch - RPI 42
a S P
A VF B
S p aA | B
Courtesy Costas Busch - RPI 43
A
a S
a
VF
S p aA | B A p aa B
Courtesy Costas Busch - RPI 44
A
a S
a
VF
S p aA | B A p aa B B p bB
b
Courtesy Costas Busch - RPI 45
A
a S
a a
B VF
S p aA | B A p aa B B p bB | a
Courtesy Costas Busch - RPI
b
46
A
a S
a a
B
b
VF
NFA
M
a a
Grammar
A
a S
VF
G S p aA | B A p aa B B p bB | a
L( M ) ! L(G ) !
B b
aaab * a b * a
48
In General
A right-linear grammar has variables:
and productions:
Vi p a1a2 . am
Courtesy Costas Busch - RPI 49
M such that:
Vi corresponds to a node:
V1 V3
V0
VF
V2
V4
Courtesy Costas Busch - RPI
Vi p a1a2 . amV j
Vi
a1
a2
am V j
51
Vi p a1a2 . am
Vi
a1
a2
am
VF
52
Resulting NFA
a1
V0
a3
a4
V3
a5 a9 VF
V2
a5
a8 V4
It holds that:
L(G ) ! L( M )
Courtesy Costas Busch - RPI 53
be a left-linear grammar
We will prove:
L(G ) is regular
A p Ba1a2 . ak A p a1a2 . ak
55
Gd
A p Ba1a2 . ak
Bv
Right linear
Gd
A p ak . a2a1B
Apv B
Courtesy Costas Busch - RPI 56
Gd
A p a1a2 . ak Apv
Right linear
Gd
A p ak . a2a1
Apv
R
57 Courtesy Costas Busch - RPI
L(G ) ! L(G )
R d
is Gd right-linear, we have:
R d
L(Gd )
Regular Language
L(G )
L(G )
Regular Language
Regular Language
58
Proof - Part 2
Languages Generated by Regular Grammars
Regular Languages
59
G
60
L ! L(M )
b
Example:
M
q0
q1
P
q2
b
q3
61
Convert
M to a right-linear grammar
b
M
q0
q1
q2 b
q0 p aq1
P
q3
62
M
q0
q1 P
q2 b
q3
63
q1 P
q2 b
q3
64
L(G ) ! L( M ) ! L
G
q0 p aq1 q1 p bq1 q1 p aq2 q2 p bq3 q3 p q1 q3 p P
Courtesy Costas Busch - RPI
M
q0
q1 P
q2 b
q3
65
In General
For any transition:
Add production:
q p ap
variable
terminal
variable
66
qf
Add production:
qf p P
67
Since
G is right-linear grammar
L(G ) ! L( M ) ! L
68