21/1/2010
1
Bài 2.
Các giai đon chính
1
c
a chương trình dch
Các thành phn chính ca trình biên dch
2
Các giai đon ca trình biên dch
Phân tích t vng (Lexical Analysis -
Scanner)
Ln lượt xem xét tng ký t ca chương trình
h h đ
3
ngu
n, p
n n
m c
ng t
n
h
n
h
ng
đ
ơn v
cú pháp gi là t t (token)
Phân tích cú pháp (Syntax Analysis)
Dãy token do b phân tích t vng đưa ra
được kim tra xem có đúng cú pháp không?
Các giai đon ca trình biên dch
Phân tích ng nghĩa (Semantic Analysis)
phân tích ý nghĩa tng lnh ca ngôn ng
n
g
un.
4
g
Sinh mã trung gian (Intermediate Code
Generation)thường là mã 3 địa ch. Mã
trung gian không ph thuc máy nên d ti
ưu.
21/1/2010
2
Các giai đon ca trình biên dch
Sinh mã đích: Sinh ra các lnh máy để
thc hin thao tác.
Tiưumã:Thchinvi trung gian
5
Ti
ưu
mã:
Thc
hin
vi
trung
gian
và cđích nhm làm cho chương trình
hiu qu hơn.
Quá
trình
dch
6
m
t
câu
lnh
Pha 1:Phân tích t vng
B t vng:Chương trình làm nhim v
phân tích t vng
Các côn
g
vic ca b t vn
g
7
g g
Nhóm các ký t thành t t
T t :đơn v cú pháp được x lý trong quá
trình dch như mt thc th không th chia
nh hơn na
Nhóm các t t theo loi.
Mt s loi t t
8
21/1/2010
3
Pha 2: Phân tích cú pháp
Trình biên dch kim tra xem nhng t t
mà b t vng nhn biết được có kết hp
thành nhn
g
câu l
nh đún
g
p
p
9
ggpp
không
Do b phân tích cú pháp đảm nhn
Pha 2: Phân tích cú pháp
Đầu ra ca b phân tích cú pháp:
Cây phân tích cú pháp (nếu có)
Thông báo linếungượcli
1 0
Thông
báo
li
nếu
ngược
li
Vic xây dng được cây phân tích cú
pháp chng t chương trình đúng v
pháp
Ví d: câu lnh a = b + c
1 1
Văn phm, ngôn ng, BNF,sơ đồ cú pháp
Cú pháp
Cu trúc văn phm ca mt ngôn ng
Bphân tích pháp cnđưa ra phân tích
1 2
B
phân
tích
pháp
cn
đưa
ra
phân
tích
cho mi câu ca ngôn ng (chương trình)
BNF : Dng chun để mô t văn phm ca
ngôn ng
Sơ đồ cú pháp:cách mô t văn phm trc
quan dưới dng đồ th định hướng
21/1/2010
4
Văn phm, ngôn ng, BNF,sơ đồ cú pháp
Các lut ca BNF cũng như văn phm
hình thc s dng 2 loi ký hiu vế phi
Ký hiu kết thúc :
T ô
1 3
T
t
c
a ng
ô
n ng
Không xut hin vế trái
Ký hiu không kết thúc
Ký hiu trung gian ca văn phm để mô t
cu trúc ngôn ng
Cn xut hin vế trái ca ít nht mt lut
Bao trong cp <>
Văn phm, ngôn ng, BNF,sơ đồ cú pháp
Ký hiu đầu :
Ký hiu không kết thúc mc cao nht
Xuthingc cây pháp
1 4
Xut
hin
gc
cây
pháp
Khái nim và k thut phân tích cú pháp
Bng cách áp dng liên tc các lut mô t
văn phm
NếubPTCP chuyn thành công txâu
1 5
Nếu
b
PTCP
chuyn
thành
công
t
xâu
vào thành ký hiu đầu thì xâu vào đúng cú
pháp
Ngược li, câu được xem xét không đúng
cú pháp
Khái nim và k thut phân tích cú pháp
Vn đề quan trng nht khi xây dng
trình biên dch là xây dng mt văn
phm
1 6
phm
Bao gm đầy đủ các cu trúc ca mt
chương trình
Không th to nên mt lut nào khác
21/1/2010
5
Khái nim và k thut phân tích cú pháp
Văn phm phi không nhp nhng
ế
1 7
N
ế
u văn phm nhp nh
ng, xây dng
được nhiu hơn 1 cây cho mi câu
được đưa ra phân tích
Pha 3: Phân tích ng nghĩa
Duyt cây cú pháp ca chương
trình để xem mi cu trúc ng
hĩóđúkhô
1 8
ng
hĩ
a c
ó
đú
ng
khô
ng
Chương trình đúng c v cú pháp
và ng nghĩa mi sinh mã được
Pha 4: Sinh mã trung gian
Chương trình vi mã ngun được
chuyn sang chương trình tương
đươn
g
tron
g
n
g
ôn n
g
trun
g
g
ian
1 9
gggg gg
bng b sinh mã trung gian.
Mã trung gian là mã máy độc lp
tương t vi tp lnh trong máy.
Ưu đim ca mã trung gian
1.Thun li khi cn thay đổi cách biu
din chương trình đích.
2.Có th ti ưu hóa mã đ
c l
p
vi
2 0
p
máy đích cho dng bi
u din trung
gian.
3.Gim thi gian thc thi chương trình
đích vì mã trung gian có th được ti
ưu