21/1/2010
1
XÂY DNG
CHƯƠNG TRÌNH
DCH
CHƯƠNG
TRÌNH
DCH
Nguyn Th Thu Hương - Khoa CNTT – ĐHBKHN
Tel (04) 38696121 - Mobi : 0903253796
Email :huongnt@it-hut.edu.vn,huongnt-fit@mail.hut.edu.vn
Môn hc s nghiên cu
Cách thc làm vic ca máy tính (tp
lnh, thanh ghi, mode địa ch, các cu trúc
d li
u đư
c s d
n
g
khi th
c hi
n. . .
)
g )
Cách thc làm vic ca b x lý ngôn ng
và chương trình dch
Sinh mã máy cho nhng cu trúc ngôn
ng c th
Thế nào là mt thiết kế ngôn ng tt?
Ti sao cn nghiên cu CT dch?
Rèn k năng phát trin ng dng quy mô
ln
Làm vicvicáccutrúcdliuphctp
Làm
vic
vi
các
cu
trúc
d
liu
phc
tp
Tìm hiu s tương tác gia các gii thut
Bước chun b cho nhng
d án ln trong tương lai.
Nhng vn đề chính
B x lý ngôn ng
Cu trúc ca mt trình biên dch (1 pha)
Văn phm sn sinh
BNF và sơ đ
cú pháp
Phân tích t vng và bng ký hiu
Phân tích cú pháp trên xung có quay lui
Phân tích cú pháp tin định
Văn phm LL(k)
21/1/2010
2
Nhng vn đề chính
Phân tích đệ quy trên dưới
Phân tích cú pháp cho ngôn ng KPL
Phân tích ngnghĩa
Phân
tích
ng
nghĩa
Stack calculator
Sinh mã trung gian
Sinh mã đích
Ti ưu mã
Tài liu tham kho
Aho.A.V, Sethi.R., Ullman.J.D.
Compiler : Principles, Techniques and Tools.
Addison Wesley.1986
Bal.H. E.
Modern Compiler Design.
John Wiley & Sons Inc (2000)
John
Wiley
&
Sons
Inc
(2000)
William Allan Wulf.
The Design of an Optimizing Compiler
Elsevier Science Ltd (1980)
Charles N. Fischer.
Crafting a Compiler
Benjamin-Cummings Pub Co (1987)
Tài liu tham kho
Niklaus Wirth
Compiler Construction.
Addison Westley. 1996
Andrew.W.Appel
Modern Compiler Implementation in Java
r
nce
on
n
vers
y.
Nguyn Văn Ba
Giáo trình k thut biên dch
Đại hc Bách Khoa Hà Ni.1994
Vũ Lc
Phân tích cú pháp
Đại hc Bách Khoa Hà Ni.1990
Bài ging v ngôn ng và phương pháp dch
www.sourceforge.net
Bài 1.
Bx ngôn ng
B
x
ngôn
ng
21/1/2010
3
Ngôn ng lp trình cp cao
Các ngôn ng lp trình được chia thành 5
thế h.
Vic
phân
chia
cp
cao
hay
thp
ph
Vic
phân
chia
cp
cao
hay
thp
ph
thucmcđộ trutượng ca ngôn ng
Cpthp:gnvimáy
Cpcao:gnvi ngôn ngtnhiên
Ngôn ng lp trình thế h th nht và th hai
Thế h th nht : ngôn ng máy
Thếhthhai : Assembly
Thế
h
th
hai
:
Assembly
Các ngôn ng thuc thế h th nht và
th hai là ngôn ng lp trình cp thp
Ngôn ng lp trình thế h th ba
D hiu hơn
Cho phép thc hin các khai báo, chng
hnbiến
hn
biến
Phn ln các ngôn ng cho phép lp trình
cu trúc
Ví d: Fortran, Cobol, C, C++, Basic . . . .
Ngôn ng lp trình thế h th tư
Thường đượcsdng trong mtlĩnh vc
cth(chng hnthương mi)
Dl
p
trình,xâ
y
dn
g
p
hnmm
p
y
g
p
thkèm công cto form, báo cáo
d:SQL, Visual Basic, Oracle (SQL
plus, Oracle Form, Oracle Report). . . .
21/1/2010
4
Ngôn ng lp trình thế h th năm
Gii quyết bài toán da trên các ràng buc
đưarachochương trình chkhông phi
giithutcangườilp trình.
ế
Vicgiiquy
ế
t bài toán do máy tính thc
hin
Phnln các ngôn ngdùng để lptrình
logic, giiquyết các bài toán trong lĩnh vc
trí tunhân to
Đặc trưng ca ngôn ng lp trình cp cao
Độclpvi máy tính
Gnvi ngôn ngtnhiên
Chương
trình
d
đọc,
viết
bo
trì
Chương
trình
d
đọc,
viết
bo
trì
Munthchinchương trình phidch
sang ngôn ngmáy
Chương trình thchinchmhơn
Cú pháp và ng nghĩa ca ngôn ng lp trình
pháp : Chính t vănphmca
các
cu
trúc
ngôn
ng
các
cu
trúc
ngôn
ng
Ngnghĩa:Ýnghĩavàhiuquca
các cu trúc ngôn ng
B x lý ngôn ng (Language Processor)
Phn mm dch t mt ngôn ng nào đó
sang mã máy (có th đồng thi thc thi)
d
d
Compiler
Assembler
Interpreter
Compiler - Compiler
21/1/2010
5
Compiler & Interpreter
Compiler : Dch trc tiếp ra mã máy
It t T tiếth hitl
I
n
t
erpre
t
er :
T
rc
tiế
p
th
c
hi
n
t
ng
l
n
h
m
ã
ngu
n
Biến th ca Interpreter : thông dch mã trung gian
Compiler (trình biên dch)
Mc đích : Dch chương trình t ngôn ng
cp cao (ngôn ng ngun) sang ngôn ng
c
p
th
p
(
n
g
ôn n
g
đích
)
.
pp( g g )
Bn thân compiler được viết trên mt
ngôn ng gi là ngôn ng thc hin
Compiler Interpreter