Professional Documents
Culture Documents
Cu phap v ng nghia
Ni dung
Vn pham v vi du v cy cu phap
BNF v inh nghia cy cu phap
Xy dng vn pham
Cu truc cu v t vng
Cac dang vn pham khac
Mt danh ng l ...
Mt ng t l
Mt mao t l
Mt danh t l ...
Vn pham hoat ng nh th no
Vn pham l mt tp hp cac qui tc chi ra
cach thc xac inh mt cy cu phap
Cho <S> l gc cua cy
Vn pham xac inh cach thc m cac nut
con co th c thm vo cy
Nh vy, qui tc
Cy cu phap
<S>
<NP> <V> <NP>
<A> <N>
the dog
Cy cu phap
<exp>
( <exp> )
((a+b)*c)
<exp> * <exp>
( <exp> )
<exp> + <exp>
a
Tng quan
Vn pham v vi du cy cu phap
BNF v inh nghia cy cu phap
Xy dng vn pham
Cu truc cu v t vng
Cac dang vn pham khac
10
11
Ky hiu bt u
<S> ::= <NP> <V> <NP>
Mt lut sinh
<NP> ::= <A> <N>
<V> ::= loves | hates|eats
M tp hp cac tokens
Mt tp hp cac ky hiu khng kt thuc
Mt ky hiu bt u
Mt tp cac lut sinh (productions)
13
15
16
17
Vi du
<exp> ::= <exp> + <exp> | <exp> * <exp> | ( <exp> )
| a | b | c
Empty
Ky hiu khng kt thuc c bit <empty>
c dung chi ra l vn pham khng sn
sinh bt c gi vi tri no xut hin
Vi du, vn pham sau inh nghia mt cu
truc if-then vi mt phn else tuy chon:
19
Cy cu phap
xy dng mt cy cu phap, thit lp ky
hiu bt u nut gc
Thm cac ky hiu khng kt thuc vo, da
trn cac lut sinh trong vn pham
Kt thuc khi tt c cac nut la l token
oc cac nut la t trai sang phi, y chinh
l chui phat sinh t cy cu phap
20
ng dung
<exp> ::= <exp> + <exp> | <exp> * <exp> | ( <exp> )
|a|b|c
21
22
Ni dung
Vn pham v vi du cy cu phap
BNF v inh nghia cy cu phap
Xy dng vn pham
Cu truc cu v t vng
Cac dang vn pham khac
23
Xy dng vn pham
Vi du: cac khai bao trong ngn ng Java:
tn kiu, danh sach cac bin cach nhau bi
du phy, v mt du chm phy
Mi bin co th c theo sau bi mt b
khi tao:
float a;
boolean a,b,c;
int a=1, b, c=1+2;
24
Vi du (tip theo)
Ni dung
Vn pham v vi du cy cu phap
BNF v inh nghia cy cu phap
Xy dng vn pham
Cu truc cu v t vng
Cac dang vn pham khac
26
Token
Cac token l nhng mu vn bn trong
chng trinh m chung khng th c chia
nho hn na
inh danh (count), t khoa (if), toan t
(==), hng s (123.4), etc.
Chng trinh may tinh l mt day cac ky t
Lm th no mt day cac ky t co th phn
tich thnh cac token?
Chapter Two
27
28
Lu y
31
Lu y
32
Ni dung
Vn pham v vi du cy cu phap
BNF v inh nghia cy cu phap
Xy dng vn pham
Cu truc cu v t vng
Cac dang vn pham khac
33
34
35
36
EBNF Examples
<if-stmt> ::= if <expr> then <stmt> [else <stmt>]
<stmt-list> ::= {<stmt> ;}
<thing-list> ::= { (<stmt> | <declaration>) ;}
37
Cac s cu phap
Vn pham EBNF
Mt lut sinh n gin l mt chui cac ky
hiu kt thuc v khng kt thuc:
expr
then
stmt
else
stmt
38
ng vong
expr
then
stmt
else
stmt
39
Re nhanh
<exp> ::= <exp> + <exp> | <exp> * <exp> | ( <exp> )
|a|b|c
exp
exp
exp
exp
exp
exp
a
b
c
40
Vong lp
exp
addend
+
41
Vi du
WhileStatement:
while ( Expression ) Statement
DoStatement:
do Statement while ( Expression ) ;
ForStatement:
for ( ForInitopt ; Expressionopt ; ForUpdateopt)
Statement
[The Java Language Specification,
James Gosling et. al.]
42