You are on page 1of 29

Context Free Grammars

Context Free Grammars



) Context
( Free Grammars Rules C.F.G Recursive

Derivation & Productions



.
=wzy

=wxy

Derivation
P1 , P2 , P3 , , Pm
. { P = { P1 , P2 , P3 , , Pm
) (



. P1 , P2 , P3 , , Pm

Pm

P1

P2

:
T , N
N Non terminals
.
T terminals .

NT=V

=NT

)(

Grammar


.
: Phrase Structured Grammar
.
:
:
)G=(N,T,P,S
:

= N .

= T .

= P . Production Rules

= S . Initial states

): (2

1 m

m
G
: (1)

:
G=(N,T,P,S)
Ident = letter ( letter / digit )*
Letter = A/B / z/ a / b / z
Digit = 0 / 1/ 9
N = { ident , letter , digit }
T = { A , B , , z , a, b , z } ;
S = { ident }
(2)
2+5-9
G=(N,T,P,S)
:
list
list + digit
list
list digit
list
digit
Digit = 0 / 1/ 2/ /9
N = { list , digit }
T = { 0, 1 , 2 , , q, + , - }
S = list
:
list

list + digit

list
list

list digit + digit


digit - digit + digit
95+2

Context Free Grammars



. Lexical Structure
:

:
exp / ( exp ) / Number

exp op
*+/-/
:
Number = digit
digit
Digit
= 0/1/2/3/4/5/6/7/8/9
:

/ .

* .

exp
op

) = ( .


6 Token
:
+ , - , * , ( , ) Number
:
( Backus Number Form ( BNF

Backus Naur Form -1 BNF
:
-1

> . < a

-2

=::

-3

/
.
:
1
2
3
:
< a > ::= 1 / 2 / 3
EBNF -2
Syntax Diagram -3

) (
:
( G = ( N , T , P , S G :
-1

(Type (0 .

-2

(Type (1 Context

:
A


A N *( , , ( N UT
-3

(Type (2 Context Free


p:

A N *) ( N UT


.
-4

Regular (Type (3
aB

A,B N a T
:
) (1 ( G1 = ( {S} , { 0 , 9 } , P , S
P
S0S
SIS
S1
S0

*{L(G1) = { 0 , 1 :
) (2 ( G2 = ( {S} , { 0 , 9 } , P , S
P
S0SI
S0I
}N={S
}T = {0,I
}S={S
L(G2) = { 0N IN : n > = I
{
) (3

( G3 = ( {S,A} , { 0 , 1 } , P , S

P
S0AI
S0I
0A=00A1
S = 0 I

} L(G3) = { 0N IN : n > = I
) (4 { G4 = {( {S,A} , { 0 , 1 } , P , S
P
S0SI
S0I
0 SI S

} L(G4) = { 0N IN : n > = I
:



:
-1
.
-2
.


Derivations and the Language Defined by a
Grammar

Tokens

: ) 42*(3-34
Tokens
( Number Number )* Number

exp op exp / (exp) / Number
*+/-/
:

exp
exp

) 42* 34-3 ) .
Tokens
. Derivations

. Tokens
.
:
) 42*(3-34 :
exp op exp
} {exp exp op exp
exp op Number
} {exp Number
exp * Number
}* {op
(exp) * Number
} ){exp (exp
(exp op exp) * number
}{exp exp op exp
} (exp op Number )*Number {exp Number
(exp - Number)*Number
} {op -
} (Number - Number )*Number {exp Number

exp
exp
exp
exp
exp
exp
exp
exp

)(1
)(2
)(3
)(4
)(5
)(6
)(7
)(8

.
:


Define
Construct .
Token
exp Language
Define By The Grammar

.
Productions
Produce (L(G .
:
-1

-2

. Non terminals

-3

. terminals



.
:
exp exp op exp
exp Number op exp
exp Number + exp
exp Number + Number
exp
exp
Number

op
+

exp
Number

Regular Expressions


r

Language Generator by the R.E . (L(r
:
: :
-1

. ASCII

-2

ASCII

Symbols
Alphabet . ( ( Sigma
: r alphabet
Regular
Expression .
: r
Meta character Meta symbols / + :
*.
Regular Expressions Definition of
R.E :
-1 R.E
.
-2 R.E
.

:
-1

. 5,43

-2

5+43

43*5

Basics of Regular
Expression
Alphabet .
a
} L(a) = { a
:
-1

Empty String

-2

{ { epsilan :
}L () = {
Empty Set

} { = )( L
} { { } } {

} {
.

Reqular Expression
operations
-:

-1 )Meta
( character . /
-2 .
Closure )) Meta character * .

-3

Choice from alternatives


s , r
r/s r . s

r/s r s
)L(r/s) = L ( r ) U L(s
: 1 a/b
.
} L(a/b) = L ( a ) U L(b) = { a } U { b } = { a,b
: 2 a/
.
} L (a / ) =L (a) U L ( ) = {a} U { } = { a,
Concatenation

. r s rs
r s
.
): (1
-1

ab ab .

-2

) a/b)c ac . bc
) (2

}S1 = {aa, b
} S2 = {a, bb
.S1S2
{S1 S2 = {aaa, aabb, ba, bbb
Repetition
Clourse
*r r *r
.
:
,a* = , a,aa,aaa
:
S* = { } U s U ss U sss U .
S* = U N=0 SN
:
*) L(r*) = L( r
:
)*(a/bb
L(a/bb)* = { a , bb }* = { ,a,bb,aa,bbb,
}bba,bbbb,aaa,aabb,abba,abbbb,bbaa,

)* ( ). (/
) (1 *a/b :
} (a/b)* = { , a , b, aa,bb, ba , bb,

}a/(b)* = { ,a,b,bb,bbb,

)*(
).(/
):(2
))*- a/bc* = a/(b(c
)- ab/c* d = (ab) / (( c* ) d

:
* ) (0/1/2/3//9) (0/1/2//9

* digit digit

digit = 0/1/2//9

Regular Expression
:
a a

-1

.
{L(a) = {a :
{ L( ) = { :
} = ( L ( :

-2 r/s s,r
.

(L(r/s) = L( r ) U(s

-3 rs s,r
.

(L(rs) = L( r ) L(s

-4 *r r

*( L(r*) = L( r

-5 r r

( L((r)) = L( r

.
.
Tokens :
Regular expression for programming language tokens
Tokens
:
-1 Reserved words Key words
.
if : while do . Pascal c

-2 Special symbols
=
= = .+ +
-3 Identifiers
.
-4 contents literals
42 3.14 " " Hello , ward
a , b
:
-1 : Number
) ( :

) . E ) Exponent

:
Nat = [ 0 9 ] +
SignNatural = (+/-) ? Nat
? ) Number = signedNat ( . Nat ) ? ( E SignedNat
-2 Resrved words & identifiers
:



Resrved = if / while / do /

.
:

Letter
= [ a-z A z ]
Digit
= [ 0-9 ]
Identifier = letter (letter / digit )*

Finite State

Automata
Finite State machines
) ( .
F.A
. Scanners
F.A . R.E
F.A . R.E
FSA
:
input tape
b

Read Head

) Control ( state
FSA
. input tape
.
.
DFSA
.

-:
:
Identifier = letter ( letter / digit

(*


:
Letter
2
Digit

Letter

:
-1

2 1 ) states ( :
.

-2

Transitions


.

-3

1 ) Start state (

.

-4

2
Lether 2
.

-5

accepted states

. .
: xtemp :
2

DFA Deterministic

Finite Automata
DFA :Definition of Deterministic Finite Automata

.
Automate
.
: DFA
DFA m :
.1

. s

T = SX

.3

( Start state ( So S

.4

( Accepting states ( A C S

m (L(m
C1 , C2 , , Cn Ci
) Sn = T (Sn-1 , Cn ) , S2 = T(S1 , C2) , S1 = T(S0 , C1
. A
:
-1

S X s .

-2

) ( S,C S S . C

-3

T T( c , s ) = S
S S . C
m :
S

DFA :
-1



:
letter
Start

in-id

Letter
digit

} { start , in-id
-2
: Letter

:
[ Letter = [ a z A z
52
-3 Function
S

T = S X

(T ( S,C . C , S
(T(start ,c c
( T(in-id , c c .
) ( Errors

Error transitions
:

letter
start

letter

in-id

digit
other

other
Any
Erro
r

Other
Start Other -1
Other = ~ Letter
in id Other -2
Other = ~ ( Letter | Digit )
:
Regular Definition
:
Nat = [ 0 9 ] +
SignNat = ( + / - ) ? Nat
Number = signNat ( . Nat ) ? ( E signNat ) ?
: DFA
digit = [ 0-9 ]
Nat = digit +
SignNat = ( + / - ) ? Nat
Number = signNat ( . Nat ) ? ( E signNat ) ?

digit

digit

Nat -1

SignNat-2
SignNat Digit Sign
DFA :
Digit
+

digit

digit
-3 :
Digit
digit
+
digit

digit

digit

.
-3

E Float Point
number Exponential . E
DFA :
digit
digit

digit

digit
digit

+
-

digit

digit
E

digit


(Non-deterministic finite Automate (NFA
NFA m :
-1

-2

. S

-3

({T : SX( U{

-4

S0 . S

-5

A . S

:
-1


((s, a

-2
. Empty transition
-3
) ( .
Nondeterminstie :
-1

-2


-transition . NFA

:
-1

NFA

2
b

a
3

abb
:
4
4

t
b

2
2

1 a

1 a


*ab +/ab* / b

*( a / ) b
DFA
a
b

b
-2

NFA :

101

a c a b :
c

4
3

3
2

2
7
10


) a /c )* b

1
6
9 b

You might also like