Professional Documents
Culture Documents
.
=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
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
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
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