Вы находитесь на странице: 1из 46

1

BI GING
CHNG TRNH DCH
B mn khoa hc my tnh
Trang 2
NI DUNG
Chng 1: Cc kin thc c s
Chng 2: Phn tch t vng
Chng 3: Phn tch c php
Chng 4: Phn tch ng ngha
Chng 5: Mi trng thc thi
Chng 6: Sinh m trung gian
Chng 7: Sinh m ch
Thc hnh: PL0
Trang 3
M u
Mc ch:
Cung cp cc nguyn l, k thut c bn xy dng
mt chng trnh dch
Nng cao kh nng lp trnh
Ti liu tham kho
Thc hnh k thut bin dch, Nguyn Vn Ba
Chng trnh dch, V nh Ha, Th Bch Ngc
Bi ging chng trnh dch, V Hng Nguyn
Trang 4
Chng 1: Cc kin thc c s
1. Khi nim chng trnh dch
a. nh ngha
b. Bin dch v thng dch
2. Cu trc mt chng trnh dch
a. Cu trc tnh (cu trc logic)
b. Cu trc ng
c. V tr mt chng trnh dch trong h thng dch
thc s
Trang 5
1.a. nh ngha chng trnh dch
Trc y, con ngi ra lnh cho my mc tnh
bng nt bm, cng tc, cn gt.
Ngy nay, con ngi ra lnh cho my tnh bng
mt dy cc cu lnh.
My tnh ch hiu ngn ng 0, 1
Ngn ng ca con ngi di dng, c ch mp
m, nhiu cch din t
Trang 6
1.a. nh ngha chng trnh dch
To ra ngn ng trung gian l ngn ng lp
trnh (NNLT)
NNLT phng theo ngn ng t nhin nn d
dng cho con ngi s dng
NNLT c cu trc r rng nn c th t ng
chuyn dang ngn ng my nh ngi phin
dch
Trang 7
1.a. nh ngha chng trnh dch
nh ngha: chng trnh dch l mt chng
trnh thc hin vic chuyn i mt chng trnh
hay mt on chng trnh con t ngn ng
ngun mt cch tng ng sang ngn ng
ch
Ngn ng ngun l NNLT bc cao (Pascal,
Java, C)
Ngn ng ch l NNLT bc thp nh Assembly
hoc ngn ng my
Trang 8
1.a. nh ngha chng trnh dch
Tng ng l chng trnh ch s thc hin
chnh xc cc cng vic m c th hin trong
chng trnh ngun.

Trang 9
1.b. Bin dch v thng dch
Trong h thng bin dch, ton b chng trnh
ngun c chuyn sang chng trnh ch
dng m my.
Khi thc hin chng trnh ch chy c lp
trn my m khng cn h thng bin dch na.
V d: Borland C, Turbo Pascal
Trang 10
1.b. Bin dch v thng dch
u im: chng trnh chy nhanh
Nhc im: vic thit k ci t phc tp
Trang 11
1.b. Bin dch v thng dch
Trong h thng thng dch, chia thnh 2 kiu:
Kiu 1: Chng trnh dch c chng trnh ngun
theo tng lnh v phn tch ri thc hin n. V d:
Foxpro, dos
Kiu 2:
Ngn ng ngun chuyn sang ngn ng dng trung
gian.
Mt chng trnh s c nhim v c chng trnh
ngn ng trung gian v thc hin tng cu lnh
(interpreter)
Chng trnh c ngn ng trung gian c gi l mt
my o.
Trang 12
1.b. Bin dch v thng dch
Trang 13
2. Cu trc mt chng trnh dch
Gm 2 pha, 6 giai on:
Giai on phn tch:
Phn tch t vng
Phn tch c php
Phn tch ng ngha
Giai on tng hp
Sinh m trung gian
Ti u m trung gian
Sinh m ch
Trang 14
Chng trnh ngun
Phn tch t vng
Phn tch c php
Phn tch ng ngha
Sinh m trung gian
Ti u m
Sinh m
Chng trnh ch
Qun l bng
k hiu
X l li
Trang 15
2.a. Cu trc tnh (cu trc logic)
Phn tch t vng:
c chng trnh ngun, ly ra cc t vng, xc nh
loi t t cho tng vng
T t l dng c php ca t vng trong phn tch c
php (tn, t kha, php ton).
Mi loi t t c mt lut m t, qua ta phn loi
t vng thuc t t no.
Trang 16
2.a. Cu trc tnh (cu trc logic)
V d:
if a > b then max := a

T vng ngha T t
if T kha Keyword
a Tn Ident
> So snh ln hn GT
b Tn Ident
then T kha Keyword
max Tn Ident
:= Php gn Becomes
Trang 17
2.a. Cu trc tnh (cu trc logic)
Phn tch c php:
Da vo lut c php ca NNLT, tm cu trc c
php ca chng trnh ngun.
Cc cu trc c php: biu thc, php gn, khai bo,
cu lnh
Kim tra s kt hp cc c php ng hay cha

Trang 18
2.a. Cu trc tnh (cu trc logic)
Phn tch c php:
V d: trong Pascal cu lnh r nhnh dng khuyt
If <biu thc iu kin> then <cu lnh>
If a > b then a := b ng c php
If a := b then a > b sai c php

Trang 19
2.a. Cu trc tnh (cu trc logic)
Phn tch ng ngha:
Kim tra li ng ngha: kiu d liu, phm vi hng,
bin, s dng tn
Thu nhn thng tin thuc tnh cho t t: s - gi tr,
tn hng, bin, hm, th tc,
Quan trng: kim tra kiu trong php gn, tnh ton.


Trang 20
2.a. Cu trc tnh (cu trc logic)
Phn tch ng ngha:
V d: trong Pascal
Var i : byte;
i := 2000; {li phm vi gi tr}
V d: trong C
int a, b; float c;
a := b + 10*c; {li kiu trong php gn}

Trang 21
2.a. Cu trc tnh (cu trc logic)
Sinh m trung gian: to ra dng biu din trung
gian ca chng trnh ngun
V d: dng m ba a ch:
Lnh a := b + 10*c c chuyn thnh
temp1 := 10
temp2 := id3*temp1
temp3:= id2 + temp2
id1 := temp3
Trang 22
2.a. Cu trc tnh (cu trc logic)
Ti u m trung gian: ci thin m trung gian
to ra cc m my chy nhanh hn.
V d: ti u 4 cu lnh trn thnh:
temp1 := 10
temp2 := id3*temp1
temp3:= id2 + temp2
id1 := temp3
temp2 := 10*id3
id1 := id2 + temp2
Trang 23
2.a. Cu trc tnh (cu trc logic)
Sinh m ch: thng thng to ra m my hoc
m assembly
V d:
temp2 := 10*id3
id1 := id2 + temp2
MOV id3, R2
MUL #10, R2
MOV id2, R1
ADD R2, R1
MOV R1, id1
Trang 24
2.a. Cu trc tnh (cu trc logic)
Qun l bng k hiu:
Bng k hiu c cu trc bng dng lu thng tin
v tn
Thng tin: kiu, loi, phm vi
STT Tn Kiu Phm vi
id1 a var integer
id2 Tinh procedure
id3 max const integer
Trang 25
2.a. Cu trc tnh (cu trc logic)
X l li: a ra thng bo li
Gp k t l khi phn tch t vng
Sai c php cu lnh trong phn tch c php
Sai kiu trong phn tch ng ngha
Trn nh trong sinh m
Trang 26
2.b. Cu trc ng
Cu trc ng (cu trc theo thi gian) cho bit
quan h gia cc pha khi hot ng.
Su pha c th hot ng c lp hoc hot
ng ng thi.
Mi khi mt pha no c xong ton b
chng trnh ngun hoc chng trnh trung
gian th c gi l mt ln duyt
Trang 27
2.b. Cu trc ng
Chng trnh dch c chia thnh 2 loi:
Duyt n
Duyt nhiu ln
Trang 28
Phn tch c php
Phn tch t vng Phn tch ng
ngha
Sinh m trung gian
Ti u
Sinh m
Chng trnh ngun
Chng trnh ch
Lung d liu
Hng iu khin
Chng trnh ch
S chng trnh dch duyt n
Trang 29
Chng trnh ngun
Phn tch t vng
Phn tch c php
Phn tch ng ngha
Sinh m trung gian
Ti u
Sinh m
Chng trnh ch
Lu b nh ngoi
Lu b nh ngoi

Lu b nh ngoi

S chng trnh dch duyt nhiu ln
Trang 30
2.b. Cu trc ng
So snh gia cu trc duyt mt lt v nhiu
lt

Trang 31
Trang 32
2.c.
Trang 33
Ti sao cn nghin cu chng trnh dch
V l thuyt: nghin cu chng trnh dch gip
Hiu su hn tng ngn ng lp trnh
Bit la chn cc chng trnh dch ph hp
Hiu k hn v cc la chn trong chng trnh dch
Nng cao trnh hiu bit v tay ngh
V vn dng:
Thc hin cc d n xy dng chng trnh dch
p dng vo cc ngnh nh b c, chuyn i cc
vn bn, x l ngn ng t nhin
Trang 34
B ch (Vocabulation)
L mt tp hu hn cc phn t, m mi phn t gi
l mt k hiu
V d:
- 0 9, a z l b ch ca ngn ng t nhin
- T in ting Anh: l b ch ca ngn ng ting
Anh
- T kha, tn bin: l b ch ca ngn ng lp trnh
Kin thc c bn v ngn ng
Trang 35
Xu
L mt dy lin tip, hu hn cc k hiu.
V d: o = 01101
Xu rng (c) l xu khng cha k hiu no
di ca xu o, |o|, l(o) l s k hiu c mt trong
xu
Ghp xu o, |: o|, o.| l cch vit cc k hiu trong
xu o ri ti |.
Ch : o| |o; oc = co
Kin thc c bn v ngn ng
Trang 36
Xu
Xu con: v l xu con ca xu w nu nh n c
to thnh t cc k kiu lin tip trong xu w.
Nu v nm u w th v c gi l tin t
Nu v nm cui w th v c gi l hu t
Kin thc c bn v ngn ng
Trang 37
Xu
Cc php ton: Cho A v B l hai tp xu ca mt b ch
no .
AB = {x | x e A or x e B}
AB = {x | x e A and x e B}
AxB = {(x, y) | x e A and ye B}
AB = {z = xy | x e A and y e B}
Ly tha:
c nu n = 0
A
n
=
AA
n-1
nu n > 0
Kin thc c bn v ngn ng
Trang 38
Xu
Bao ng dng:

V d:
A = {0, 1}
A
2
= {00, 01, 10, 11}
A
*
= {w | w l xu nh phn, gm c c}
Kin thc c bn v ngn ng
Trang 39
Vn phm v ngn ng
Vn phm (Grammar)
Vn phm G = {V
T
, V
N
, P, S} trong :
V
T
: tp cc k hiu kt thc ca b ch (a, b, )
V
N
: tp cc k hiu khng kt thc (A, B, )
S e V
N
: k hiu bt u
P: tp cc sn xut c dng o |
(o e V*VV
*
, | e V
*
)
Kin thc c bn v ngn ng
Trang 40
Vn phm v ngn ng
Cu: Cho vn phm G = {V
T
, V
N
, P, S}
Xu o c suy dn ra t k hiu bt u S c gi l
mt dng cu (dng c php)
Cu: l mt dng cu ch gm cc k hiu kt thc
o l cu S
+
o v o e V
T
*
V d: P = {S aAS | b; A bA | c }
ta c: S aAS abAS abcS abcb
Kin thc c bn v ngn ng
Trang 41
Vn phm v ngn ng
Ngn ng:
Cho vn phm G = {V
T
, V
N
, P, S}
Ngn ng c sinh ra bi G, k hiu l L(G), l tp tt
c cc cu trong vn phm.
K hiu: L(G) = {w | S
+
w v w e V
T
* }

Kin thc c bn v ngn ng
Trang 42
Vn phm v ngn ng
quy: A e V
N

A gi l quy nu tn ti suy dn: A
+
oA| vi o, |
e V
*
.
Nu o = c th A
+
A| : quy tri
Nu c A

A| th A gi l quy tri trc tip
Nu | = c th A
+
oA : quy phi
Nu c A

oA th A gi l quy phi trc tip
Nu o, | = c ta c quy trong
Kin thc c bn v ngn ng
Trang 43
Vn phm v ngn ng
Vn phm tng ng
Cho hai vn phm G
1
= {V1
T
, V1
N
, P1, S1}
G
2
= {V2
T
, V2
N
, P2, S2}
G
1
gi l tng ng vi G
2
L(G
1
) = L(G
2
)

Kin thc c bn v ngn ng
Trang 44
Vn phm v ngn ng
Vn phm phi ng cnh
Cho hai vn phm G = {V
T
, V
N
, P, S}
G c gi l VP PNC nu tt c cc sn xut trong
P u c dng A o vi o e V*
Cy suy dn: l mt cy c th t
Cc nt c nhn l cc k hiu trong V {c}
Cc nt trong c nhn l k hiu trong V
N

Nt l c nhn l k hiu trong V
T

Gc c nhn S (k hiu bt u)
Kin thc c bn v ngn ng
Trang 45
Vn phm v ngn ng
Cy suy dn: l mt cy c th t
Nu A e V
N
l nt nhn ca mt nt trong trn cy v
X
1
, X
2
, , X
n
l cc nt con ca n, ta c:
AX
1
X
2
X
n
e P
Nu ni cc k hiu nm trn cc l ca cy t tri qua
phi, thu c mt cu.
VD1: P = {E E+E | E*E | (E) | a}; w = a+a*a
VD2: P = {SaAB |BA; ABBB | a; B AS | b }
w = abaaabbb
Kin thc c bn v ngn ng
Trang 46
Vn phm v ngn ng
Vn phm n ngha
Vn phm G c gi l n ngha nu vi mi w e
L(G), ch tn ti duy nht mt cy suy dn.
Ngc li, ta gi l vn phm a ngha (nhp
nhng)
Kin thc c bn v ngn ng

Вам также может понравиться