Вы находитесь на странице: 1из 68

Grammars

Courtesy Costas Busch - RPI

Grammars
Grammars express languages Example: the English language

sentence p noun _ phrase noun _ phrase p article predicate p verb


Courtesy Costas Busch - RPI

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

the dog verb the dog walks


Courtesy Costas Busch - RPI 4

A derivation of a cat runs: sentence noun _ phrase noun _ phrase article a noun noun verb predicate verb verb

a cat verb a cat runs


Courtesy Costas Busch - RPI 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 }
Courtesy Costas Busch - RPI 6

Notation
Production Rules noun p cat noun p dog Variable Terminal

Courtesy Costas Busch - RPI

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 aSb aaSbb aabb

S p aSb

S pP
9

Courtesy Costas Busch - RPI

Other derivations:

S aSb aaSbb aaaSbbb aaabbb

S aSb aaSbb aaaSbbb aaaaSbbbb aaaabbbb

Courtesy Costas Busch - RPI

10

Language of the grammar

S p aSb S pP L ! {a b : n u 0}
n n

Courtesy Costas Busch - RPI

11

More Notation
Grammar

G ! V , T , S , P

V : Set of variables T : Set of terminal symbols

S:
P:

Start variable Set of Production rules


Courtesy Costas Busch - RPI 12

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:

S aSb aaSbb aaaSbbb aaabbb


Sentential Forms
Courtesy Costas Busch - RPI

sentence
14

* We write:

S aaabbb

Instead of:

S aSb aaSbb aaaSbbb aaabbb


Courtesy Costas Busch - RPI 15

* In general we write:

w1 wn

If:

w1 w2 w3 . wn

Courtesy Costas Busch - RPI

16

* By default:

w w

Courtesy Costas Busch - RPI

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

Courtesy Costas Busch - RPI

19

Another Grammar Example Grammar G : S p Ab A p aAb ApP

Derivations:

S S S

Ab b Ab aAbb Ab aAbb

abb aaAbbb aabbb


20

Courtesy Costas Busch - RPI

More Derivations

S Ab aAbb aaAbbb aaaAbbbb aaaaAbbbbb aaaabbbbb




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 article p the

article p a | the
Courtesy Costas Busch - RPI 24

Linear Grammars

Courtesy Costas Busch - RPI

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

Courtesy Costas Busch - RPI

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

Another Linear Grammar


Grammar

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

Courtesy Costas Busch - RPI

29

Left-Linear Grammars
All productions have form:

A p Bx
or

Ap x
Example:

S p Aab A p Aab | B Bpa


Courtesy Costas Busch - RPI

string of terminals

30

Regular Grammars

Courtesy Costas Busch - RPI

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

G2 S p Aab A p Aab | B Bpa


32

Observation
Regular grammars generate regular languages Examples:

G2 S p Aab A p Aab | B Bpa


L(G2 ) ! aab( ab) *
33

G1 S p abS S pa
L(G1 ) ! (ab) * a

Courtesy Costas Busch - RPI

Regular Grammars Generate Regular Languages

Courtesy Costas Busch - RPI

34

Theorem
Languages Generated by Regular Grammars

Regular Languages

Courtesy Costas Busch - RPI

35

Theorem - Part 1
Languages Generated by Regular Grammars

Regular Languages

Any regular grammar generates a regular language

Courtesy Costas Busch - RPI

36

Theorem - Part 2
Languages Generated by Regular Grammars

Regular Languages

Any regular language is generated by a regular grammar

Courtesy Costas Busch - RPI

37

Proof Part 1
Languages Generated by Regular Grammars

Regular Languages

The language L (G ) generated by any regular grammar G is regular

Courtesy Costas Busch - RPI

38

The case of Right-Linear Grammars


Let

G be a right-linear grammar
L(G ) is regular

We will prove:

Proof idea:

We will construct NFA with L ( M ) ! L (G )


Courtesy Costas Busch - RPI

M
39

Grammar

G is right-linear S p aA | B A p aa B B pb B|a

Example:

Courtesy Costas Busch - RPI

40

Construct NFA M such that every state is a grammar variable:

A
S

VF B

special final state

S p aA | B A p aa B B pb B|a
Courtesy Costas Busch - RPI 41

Add edges for each production:

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

S aA aaaB aaabB aaaba


Courtesy Costas Busch - RPI 47

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

Courtesy Costas Busch - RPI

In General
A right-linear grammar has variables:

V0 ,V1,V2 ,Vi p a1a2 . amV j


or

and productions:

Vi p a1a2 . am
Courtesy Costas Busch - RPI 49

We construct the NFA each variable

M such that:

Vi corresponds to a node:
V1 V3

V0

VF
V2

V4
Courtesy Costas Busch - RPI

special final state


50

For each production:

Vi p a1a2 . amV j

we add transitions and intermediate nodes

Vi

a1

a2

am V j

Courtesy Costas Busch - RPI

51

For each production:

Vi p a1a2 . am

we add transitions and intermediate nodes

Vi

a1

a2

am

VF

Courtesy Costas Busch - RPI

52

Resulting NFA

M looks like this:


a9 a2 V1 a3
a4

a1
V0
a3

a4

V3

a5 a9 VF

V2

a5

a8 V4

It holds that:

L(G ) ! L( M )
Courtesy Costas Busch - RPI 53

The case of Left-Linear Grammars


Let

be a left-linear grammar

We will prove:

L(G ) is regular

Proof idea: We will construct a right-linear R grammar Gd with L(G ) ! L(Gd )


Courtesy Costas Busch - RPI 54

Since G is left-linear grammar the productions look like:

A p Ba1a2 . ak A p a1a2 . ak

Courtesy Costas Busch - RPI

55

Construct right-linear grammar Left linear

Gd

A p Ba1a2 . ak

Bv

Right linear

Gd

A p ak . a2a1B
Apv B
Courtesy Costas Busch - RPI 56

Construct right-linear grammar Left linear

Gd

A p a1a2 . ak Apv

Right linear

Gd

A p ak . a2a1
Apv
R
57 Courtesy Costas Busch - RPI

It is easy to see that: Since

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

Courtesy Costas Busch - RPI

58

Proof - Part 2
Languages Generated by Regular Grammars

Regular Languages

Any regular language L is generated by some regular grammar G

Courtesy Costas Busch - RPI

59

Any regular language L is generated by some regular grammar G

Proof idea: Let

M be the NFA with L ! L(M ).

Construct from M a regular grammar such that L ( M ) ! L (G )


Courtesy Costas Busch - RPI

G
60

Since L is regular there is an NFA M such that

L ! L(M )

b
Example:

M
q0

q1
P

q2
b

L ! ab * ab(b * ab) * L ! L(M )


Courtesy Costas Busch - RPI

q3
61

Convert

M to a right-linear grammar
b

M
q0

q1

q2 b

q0 p aq1

P
q3

Courtesy Costas Busch - RPI

62

M
q0

q1 P

q2 b

q0 p aq1 q1 p bq1 q1 p aq2

q3

Courtesy Costas Busch - RPI

63

M q0 p aq1 q1 p bq1 q1 p aq2 q2 p bq3


q0

q1 P

q2 b

q3

Courtesy Costas Busch - RPI

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

Courtesy Costas Busch - RPI

For any final state:

qf

Add production:

qf p P

Courtesy Costas Busch - RPI

67

Since

G is right-linear grammar

G is also a regular grammar


with

L(G ) ! L( M ) ! L

Courtesy Costas Busch - RPI

68

Вам также может понравиться