0% found this document useful (0 votes)
504 views43 pages

Aab A Ab S S Asb S: Grammars With at Most One Variable at The Right Side of A Production

Uploaded by

tariqravian
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
504 views43 pages

Aab A Ab S S Asb S: Grammars With at Most One Variable at The Right Side of A Production

Uploaded by

tariqravian
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 43

Linear Grammars

Grammars with
at most one variable at the right side
of a production

Examples: S  aSb S  Ab
S  A  aAb
A

Fall 2003 Costas Busch - RPI 1


A Non-Linear Grammar

Grammar G: S  SS
S 
S  aSb
S  bSa

L(G )  {w : na ( w)  nb ( w)}

Number of a in string w
Fall 2003 Costas Busch - RPI 2
Another Linear Grammar

Grammar G : SA
A  aB | 
B  Ab

n n
L(G )  {a b : n  0}

Fall 2003 Costas Busch - RPI 3


Right-Linear Grammars
All productions have form: A  xB
or
A x

Example: S  abS string of


S a terminals

Fall 2003 Costas Busch - RPI 4


Left-Linear Grammars
All productions have form: A  Bx
or
A x

Example: S  Aab string of


A  Aab | B terminals

Ba
Fall 2003 Costas Busch - RPI 5
Regular Grammars

Fall 2003 Costas Busch - RPI 6


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
Fall 2003 Costas Busch - RPI 7
Observation
Regular grammars generate regular languages

Examples: G2
G1 S  Aab
S  abS A  Aab | B
S a Ba

L(G1 )  (ab) * a L(G2 )  aab(ab) *


Fall 2003 Costas Busch - RPI 8
Regular Grammars
Generate
Regular Languages

Fall 2003 Costas Busch - RPI 9


Theorem

Languages
Generated by
Regular Grammars
 Regular
Languages

Fall 2003 Costas Busch - RPI 10


Theorem - Part 1

Languages
Generated by  Regular
Languages
Regular Grammars

Any regular grammar generates


a regular language

Fall 2003 Costas Busch - RPI 11


Theorem - Part 2

Languages
Generated by  Regular
Languages
Regular Grammars

Any regular language is generated


by a regular grammar

Fall 2003 Costas Busch - RPI 12


Proof – Part 1

Languages
Generated by  Regular
Languages
Regular Grammars

The language L(G ) generated by


any regular grammar G is regular

Fall 2003 Costas Busch - RPI 13


The case of Right-Linear Grammars

Let G be a right-linear grammar

We will prove: L(G ) is regular

Proof idea: We will construct NFA M


with L( M )  L(G )
Fall 2003 Costas Busch - RPI 14
Grammar G is right-linear

Example: S  aA | B
A  aa B
Bb B|a

Fall 2003 Costas Busch - RPI 15


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
Fall 2003 Costas Busch - RPI 16
Add edges for each production:

a A
S VF
B

S  aA

Fall 2003 Costas Busch - RPI 17


a A
S VF

B

S  aA | B

Fall 2003 Costas Busch - RPI 18


A
a a

S a VF

B
S  aA | B
A  aa B
Fall 2003 Costas Busch - RPI 19
A
a a

S a VF

B
S  aA | B
b
A  aa B
B  bB
Fall 2003 Costas Busch - RPI 20
A
a a

S a VF
 a
B
S  aA | B
b
A  aa B
B  bB | a
Fall 2003 Costas Busch - RPI 21
A
a a

S a VF
 a
B

S  aA  aaaB  aaabB  aaaba


Fall 2003 Costas Busch - RPI 22
NFA M Grammar
A G
a S  aA | B
a
A  aa B
S a B  bB | a
 VF
a
B
L( M )  L(G ) 
b
aaab * a  b * a
Fall 2003 Costas Busch - RPI 23
In General
A right-linear grammar G

has variables: V0 ,V1,V2 ,

and productions: Vi  a1a2 amV j


or

Vi  a1a2 am
Fall 2003 Costas Busch - RPI 24
We construct the NFA M such that:

each variable Vi corresponds to a node:

V1 V3
V0
VF
V2 special
V4
final state
Fall 2003 Costas Busch - RPI 25
For each production: Vi  a1a2 amV j

we add transitions and intermediate nodes

Vi a1 a2 ………
am V
j

Fall 2003 Costas Busch - RPI 26


For each production: Vi  a1a2 am

we add transitions and intermediate nodes

Vi a1 a2 ………
am
VF

Fall 2003 Costas Busch - RPI 27


Resulting NFA M looks like this:
a9

a2 a4
a1 V1 V3
a3 a5
V0
a3 a4
VF
a8 a9
V2 a5
V4

It holds that: L(G )  L( M )


Fall 2003 Costas Busch - RPI 28
The case of Left-Linear Grammars

Let G be a left-linear grammar

We will prove: L(G ) is regular

Proof idea:
We will construct a right-linear
 R
grammar G with L(G )  L(G)
Fall 2003 Costas Busch - RPI 29
Since G is left-linear grammar
the productions look like:

A  Ba1a2 ak

A  a1a2  ak

Fall 2003 Costas Busch - RPI 30


Construct right-linear grammar G
Left A  Ba1a2  ak
G
linear
A → Bv

Right A  ak  a2a1B
G
linear
R
Av B
Fall 2003 Costas Busch - RPI 31
Construct right-linear grammar G
Left A  a1a2  ak
G
linear
Av

Right
G A  ak a2a1
linear
R
Av
Fall 2003 Costas Busch - RPI 32
R
It is easy to see that: L(G )  L(G)

Since G is right-linear, we have:

R
L(G) L(G) L(G )
Regular Regular Regular
Language Language Language

Fall 2003 Costas Busch - RPI 33


Proof - Part 2

Languages
Generated by  Regular
Languages
Regular Grammars

Any regular language L is generated


by some regular grammar G

Fall 2003 Costas Busch - RPI 34


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 G


such that L( M )  L(G )
Fall 2003 Costas Busch - RPI 35
Since L is regular
there is an NFA M such that L  L(M )
b
Example:
M a
a
q0 q1 q2

 b
L  ab * ab(b * ab) * q3
L  L(M )
Fall 2003 Costas Busch - RPI 36
Convert M to a right-linear grammar
b

M a
a
q0 q1 q2

q0  aq1  b
q3

Fall 2003 Costas Busch - RPI 37


b

M a
a
q0 q1 q2
q0  aq1
 b
q1  bq1 q3
q1  aq2

Fall 2003 Costas Busch - RPI 38


b

M a
a
q0 q1 q2
q0  aq1
q1  bq1  b

q1  aq2 q3

q2  bq3

Fall 2003 Costas Busch - RPI 39


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  
Fall 2003 Costas Busch - RPI 40
In General
a
For any transition: q p

Add production: q  ap

variable terminal variable


Fall 2003 Costas Busch - RPI 41
For any final state: qf

Add production: qf 

Fall 2003 Costas Busch - RPI 42


Since G is right-linear grammar

G is also a regular grammar

with L(G )  L( M )  L

Fall 2003 Costas Busch - RPI 43

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy