You are on page 1of 68

B GIAO THNG VN TI

TRNG I HC HNG HI
B MN: KHOA HO C MA Y TI NH
KHOA: CNG NGH THNG TIN







BI GING

NGN NG HNH THC V TMAT






TN HC PHN : Ngn ng hnh thc v tmat
M HC PHN : 17204
TRNH O TO : I HC CHNH QUY
DNG CHO SV NGNH : CNG NGH THNG TIN
















HI PHNG - 2008
Bi ging mn hc: Ngn ng hnh thc v Otomat
i

CNG CHI TIT
Tn hc phn: Ngn ng hnh thc v tmat Loi hc phn: 1
B mn ph trch ging dy: Khoa hc My tnh Khoa ph trch: CNTT
M hc phn: 17204 Tng s TC: 2

TS tit L thuyt Thc hnh/Xemina T hc Bi tp ln n mn hc
45 45 0 0 0 0

iu kin tin quyt:
Sinh vin phi hc xong mn hc ton ri rc.

Mc tiu ca hc phn:
- Cung cp cc kin thc c bn v ngn ng, vn phm v otomat.
- C bn v chng trnh dch.

Ni dung ch yu
Gm cc phn:
- Vn phm v ngn ng
- Ngn ng chnh quy v otomat y xung
- Ngn ng phi ng cnh v otomat y xung
- C bn v chng trnh dch

Ni dung chi tit ca hc phn:

TN CHNG MC
PHN PHI S TIT
TS LT TH/Xemina BT KT
M U
Chng I. Vn phm v ngn ng. 05 04 01
1.1. Bng ch ci, t v ngn ng
1.2. Tch ghp, php chia, php soi gng
1.3. Cc php ton trn ngn ng
1.4. Vn phm
1.5. Cc v d v vn phm

Chng II. Ngn ng chnh quy v otomat hu hn 16 12 03 01
2.1. Ngun v ngn ng c sinh bi ngun
2.2. Cc php ton trn ngun
2.3. Otomat hu hn khng li ra v ngn ng c
on nhn bi otomat hu hn khng li ra
2.4. S tng ng ca ngun v Otomat hu hn
khng li ra
2.5. S tng ng ca ngun v vn phm chnh quy
2.6. S tng ng ca ngun v biu thc chnh quy
2.7. Bi tp tng hp
2.8. Tnh ng ca lp ngn ng chnh quy
2.9. iu kin cn ca ngn ng chnh quy
2.10. iu kin cn v ca lp ngn ng chnh quy
2.11. Otomat hu hn c li ra
2.12. Ngn ng chnh quy

Bi ging mn hc: Ngn ng hnh thc v Otomat
ii


TN CHNG MC
PHN PHI S TIT
TS LT TH/Xemina BT KT
Chng III. Ngn ng phi ng cnh v otomat y
xung.
09 06 02 01
3.1. Cy v php th cy
3.2. Dng chun Chomsky
3.3. Cy dn xut v cc tnh cht
3.8. Khi nim v Otomat y xung

Chng IV: C bn v chng trnh dch 15 12 02 01
4.1.Gii thiu chng trnh dch
4.2.Chng trnh dch
4.2.1. nh ngha chng trnh dch
4.2.2. Cu trc ca chng trnh dch
4.2.3. Cu trc tnh (cu trc logic)
4.2.4. Cu trc ng
4.2.5. V tr ca chng trnh dch trong h thng dch
4.3.S cn thit nghin cu chng trnh dch
4.4. B phn tch c php


Nhim v ca sinh vin :
Tham d cc bui thuyt trnh ca gio vin, t hc, t lm bi tp do gio vin giao, tham
d cc bi kim tra nh k v cui k.

Ti liu hc tp :
- Nguyn Vn Ba, Ngn ng hnh thc, Trng i hc Bch khoa H ni, 1997
- Phan nh Diu, L thuyt otomat v thut ton, Nh xut bn i hc v Trung hc
Chuyn nghip, 1971
- c Gio, ng Huy Run, Ngn ng hnh thc, Nh xut bn KHKT, 1991
- Phm Hng Nguyn, Gio trnh chng trnh dch, H KHTN HN
- Nguyn Vn Ba, Phn tch c php, H Bch khoa HN

Hnh thc v tiu chun nh gi sinh vin:
- Hnh thc thi cui k : Thi vit.
- Sinh vin phi m bo cc iu kin theo Quy ch ca Nh trng v ca B

Thang im: Thang im ch A, B, C, D, F

im nh gi hc phn: Z = 0,2X + 0,8Y.

Bi ging ny l ti liu chnh thc v thng nht ca B mn Khoa hc my tnh,
Khoa Cng ngh thng tin v c dng ging dy cho sinh vin.

Ngy ph duyt: / /2010


Trng B mn: Thc s Nguyn Hu Tun
Bi ging mn hc: Ngn ng hnh thc v Otomat
iii

MC LC

Ni dung Trang
Mc lc
Chng 1: Vm phm v ngn ng 1
1. 1. Bng ch ci, t v ngn ng 1
1. 2. Tch ghp, php chia, php soi gng 2
1. 3. Cc php ton trn ngn ng 4
1. 4. Vn phm 6
1. 5. Cc v d v vn phm 8
Bi tp 8
Chng 2: Ngn ng chnh quy v Otomat hu hn 9
2. 1. Ngun v ngn ng c sinh bi ngun 9
2. 2. Cc php ton trn ngun 10
2. 3. Otomat hu hn khng li ra v ngn ng c on nhn bi Otomat hu
hn khng li ra
18
2. 4. S tng ng ca ngun v Otomat hu hn 26
2. 5. S tng ng ca ngun v vn phm chnh quy 30
2. 6. S tng ng ca ngun v biu thc chnh quy 30
2. 7. Bi tp tng hp 30
2. 8. Tnh ng ca lp ngn ng chnh quy 31
2. 9. iu kin cn ca ngn ng chnh quy 31
2. 10. iu kin cn v ca lp ngn ng chnh quy 31
2. 11. Otomat hu hn c li ra 31
2. 12. e - Ngn ng chnh quy 31
Bi tp 31
Chng 3: Ngn ng phi ng cnh v Otomat y xung 32
3. 1. Cy v php th cy 32
3. 2. Dng chun Chomsky 32
3. 3. Cy dn xut v cc tnh cht 32
3. 4. Khi nim v Otomat y xung 32
Bi tp 32
Chng 4: C bn v chng trnh dch 33
4. 1. Gii thiu v chng trnh dch 33
4. 2. Chng trnh dch 33
4. 2. 1. nh ngha chng trnh dch 33
4. 2. 2. Cu trc ca chng trnh dch 37
4. 2. 3. Cu trc tnh ca chng trnh dch 44
4. 2. 4. Cu trc ng ca chng trnh dch 50
4. 2. 5. V tr ca chng trnh dch trong h thng dch 58
4. 3. S cn thit phi nghin cu chng trnh dch 58
4. 4. B phn tch c php 60
Bi tp 62
Mt s thi mu 63
Ti liu tham kho 64
Bi ging mn hc: Ngn ng hnh thc v Otomat
1

CHNG 1: VN PHM V NGN NG

Kin thc c bn: tip thu tt ni dung ca chng ny, sinh vin cn c mt s cc kin
thc lin quan v chui, k hiu, t trong cc ngn ng t nhin nh ting Vit, ting Anh; cu
trc c php ca cc chng trnh my tnh vit bng mt s ngn ng lp trnh c bn nh
Pascal, C
1.1. Bng ch ci, t, ngn ng
Cc ngn ng lp trnh (nh Pascal, C, ...) ln ngn ng t nhin (nh ting Vit, ting Anh,
...) u c th xem nh l tp hp cc cu theo mt cu trc quy nh no . Cu ca ngn ng,
trong ting Vit nh "An l sinh vin gii" hay trong Pascal l mt on chng trnh bt u
bng t kha program cho n du chm cu kt thc chng trnh, u l mt chui lin tip cc
t, nh An, gii hay begin, if, x2, 215, tc cc chui hu hn cc phn t ca mt
b ch ci c s no . Ta c th xem chng nh l cc k hiu c bn ca ngn ng.
T nhn xt , ta dn ti mt quan nim hnh thc v ngn ng nh sau (theo t in):
Ngn ng, mt cch khng chnh xc l mt h thng thch hp cho vic biu th cc ngh, cc
s kin hay cc khi nim, bao gm mt tp cc k hiu v cc quy tc vn dng chng.
nh ngha trn ch cung cp mt nim trc quan v ngn ng ch khng l mt nh
ngha chnh xc nghin cu v ngn ng hnh thc. Chng ta bt u xy dng nh ngha ny
bng cc khi nim m mi ngn ng u t nn tng trn .
1.1.1. Bng ch ci
Mt dy hu hn hoc v hn cc phn t, k hiu E c gi l mt bng ch ci trong
mi phn t a e E c gi l mt k hiu (mt ch ci).
V d: E = {0,1} : Bng ch ci nh phn
E = {0,1,,9} : Bng ch ci thp phn
1.1.2. T
Mt dy k hiu a
1
, a
2,
, a
n
(a
i
, i=1 n) c gi l mt t e E.
V d : E = {0,1}
a
1
= 0, a
2
= 1, a
3
= 00, a
4
= . ,
T rng c k hiu l ., mi bng ch ci u sinh ra t rng.
Tng s cc k hiu to nn t c gi l di ca t.
V d : E = {a,b,c}
a
1
= aabb, a
2
= ac, | a
1
| = 4, |a
2
| = 2
Bi ging mn hc: Ngn ng hnh thc v Otomat
2

di ca t rng = 0.
Nu a l mt t thuc bng ch ci E, A l mt bng ch ci cha bng ch ci E th a e
A . V d : E = {0,1} , A = {0,1,2,,9}
a
1
=

0110 e E , E e A a e A
Tp hp tt c cc t e E k c t rng k hiu l E
*.

Tp hp tt c cc t e E tr rng k hiu l E
+
. Vy E
+
= E
*
\ {.}
1.1.3. Ngn ng
Ngn ng l mt tp hp cc cu c mt cu trc qui nh no . Mt cu ca ngn ng l
mt dy (hay xu) cc t c sn c lit k trong mt bng ch no , nh l cc k hiu c
bn ca ngn ng. Gi s c bng ch ci E.
Tp A e E
*
c gi l mt ngn ng sinh bi E .
V d : E = {a,b,c}
A = {x e E
*
/x bt u bi k hiu a} c gi l mt ngn ng e E
*.

Ngn ng trng k hiu |.
Mi bng ch ci E u sinh ra |.
Ngn ng trng v ngn ng cha t rng l khc nhau.
1.2. Tch ghp, php chia, php soi gng
1.2.1. Tch ghp hai xu
Gi s c bng ch ci E
Cc t o = a
1
a
2
a
3
a
n
, | = a
1
a
2
a
m
( a
i
e E )
Tch ghp ca o v | c hnh thnh bng cch ghp t | vo sau t o.

_ = o.| = a
1
a
2
a
3
a
n
a
1
a
2
a
m

V d : E={0,1}
o = 011, | =1101
_ = 0111101
Tnh cht ca tch ghp
+ Tch ghp khng c tnh cht giao hon
o| = |o
+ Tch ghp c tnh cht kt hp
(o|)_ = o (|_)
Bi ging mn hc: Ngn ng hnh thc v Otomat
3

+ Tch ghp ca mt xu vi mt xu rng bng chnh n
o.. = ..o = o
Vi tch ghp: _=o.|
o : Tip u ng
| : Tip v ng
1.2.2. Chia xu
Gi s c z = x.y ( x,y,z eE
*
)
+ Php chia tri
Nu ta thc hin ngt b xu x ra khi z c ngha l ta thc hin php chia tri xu z cho x
v kt qu l xu y.
K hiu x\
Z


= y
+ Php chia phi
Nu ta thc hin ngt xu y ra khi xu z c ngha l ta thc hin php chia phi xu z
cho xu y v kt qu l xu x.
K hiu
Z
/y = x
V d : E = {0,1}, x = 10, y = 11
Z = x.y = 1011
x\
Z
= 11

Z
/y = 10
1.2.3. Php soi gng
+ Gi s c bng ch ci E
+ T o = a
1
a
2
a
m-1
a
m
e E*
+ T o = a
m
a
m-1
a
2
a
1
c gi l t soi gng ca t o hay cn gi l t ngc ca t o
| o | = | o|

1.3. Cc php ton trn ngn ng
1.3.1. Php hp hai ngn ng
Gi s c bng ch ci E, A, B, C l cc ngn ng c sinh ra bi E
C = A B = {x e E*/x e A hoc x e B}
V d E = {a,b,c}
A = {a, b, ab, ac, cb}, B = {aa, bb, cc}
Bi ging mn hc: Ngn ng hnh thc v Otomat
4

C = A B = {a, b, ab, ac, cb, aa, bb, cc}
+ Tnh cht
Php hp c tnh cht giao hon A B = B A
C tnh cht kt hp
(A B) C= A (B C)
1.3.2. Php giao hai ngn ng
+ Gi s c bng ch ci E, A, B, C l cc ngn ng sinh ra bi E
C = A B = {x e E* | x e A v x e B}
V d : E = {a, b}
A = {a, ab, ac, cb}, B = {b, ab, cb, aa, bc}
C = A B = {ab, cb}
+ Tnh cht
Tnh kt hp
C (A B) = B (A C)
Tnh giao hon
A B = B A
A | = | A = |

1.3.3. Php tch ghp hai ngn ng
+ Gi s c bng ch ci E, A, B, C l cc ngn ng c sinh bi t E
C=A.B={z e E*| z=x.y | x e A, y e B}
V d : E = {a, b, c}
A = {a, b, ab, ac}, B{c, cb}
C = A.B = {ac, bc, abc, acc, acb, bcb, abcb. accb}
+ Tnh cht
- Khng c tnh cht giao hon
A.B = B.A
- C tnh cht kt hp
A.(B.C) = (A.B).C
- C tnh cht phn b (i vi php hp)
A.(B C) = (A.B) (A.C)
Bi ging mn hc: Ngn ng hnh thc v Otomat
5

- Tnh cht ly tha A.A.AA = A
n

1.3.4. Php hiu
Gi s c bng ch ci E, A, B, C l cc ngn ng sinh bi E
C = A\B = {x e E* | x e A, x e B}
c gi l ngn ng hiu ca hai ngn ng A v B.
V d : E = {a, b, c}
A = {a, b, ac, bc, aa}, B = {b, bc, ab, bb}
C = B\A = {b, ab, bb}

1.3.5. Php ly phn b
Gi s c bng ch ci E, A, B l cc ngn ng c sinh ra bi E
A = C
B
= { x e E*/ x eB}
c gi l ngn ng phn b hay ngn ng b ca ngn ng B.
V d : Cho B = {a, bc}.
Khi ngn ng b ca ngn ng B s l :
A = {x e E* | x = a, x = bc}.

1.3.6. Php chia hai ngn ng
Gi s c bng ch ci E, A, B l cc ngn ng c sinh ra bi E.
Tp cc t C = {z e E*| x e A, y e B, x=y.z} c gi l php chia tri ca ngn ng
A cho ngn ng B v k hiu B\
A
.
Tp cc t C = {z e E* | x e A, y e B, x = z.y } c gi l php chia phi ca ngn
ng A cho ngn ng B v k hiu l A/ B.
V d : E = {a, b, c}
A = {a, bc, abc, aba} , B = {., b, ab, cbc}
B\
A
= { a, bc, abc, aba, c}
A/
B
= {a, bc, abc, aba}

1.3.7. Php soi gng ngn ng
Gi s c bng ch ci E ,A, B l cc ngn ng c sinh bi E.
Bi ging mn hc: Ngn ng hnh thc v Otomat
6

B = = {x e E* / x l t soi gng ca x e A }.
V d E = {0, 1}
A = {0, 1, 10, 110}
B = ={0, 1, 01, 011}

1.3.8. Php lp
Gi s c bng ch ci E, A l ngn ng c sinh bi E.
A
*
= {. } A A .A
n
gi l ngn ng lp ca ngn ng A.
Tnh cht :
-
(A
*
)* = A
*
-
{.}
*
= {.}

-
(C)
*
= {.} C C.C = {.}

-
(C)
+
= C C.C = C

1.4. Vn phm
Vi mc ch sn sinh (hay on nhn) ngn ng, vn phm c dng nh mt cch thc
hiu qu biu din ngn ng.
1.4.1. nh ngha vn phm cu trc (Grammar)
Theo t in, vn phm, mt cch khng chnh xc, l mt tp cc quy tc v cu to t
v cc quy tc v cch thc lin kt t li thnh cu.
hiu r hn khi nim ny, ta xt v d cy minh ha cu trc c php ca mt cu n trong
ngn ng ting Vit "An l sinh vin gii" th d 1.5 ca chng 1. Xut pht t nt gc theo
dn n nt l, ta nhn thy cc t nhng nt l ca cy nh An, sinh vin, gii, l
nhng t to thnh cu c sn sinh. Ta gi l cc k hiu kt thc bi v chng khng cn
pht sinh thm nt no trn cy v cu c hon thnh. Tri li, cc nt trong ca cy nh cu
n, ch ng, danh t, s khng c mt trong dng cu sn sinh, chng ch gi vai tr
trung gian
trong vic sinh chui, dng din t cu trc cu. Ta gi l cc k hiu cha kt thc. Qu trnh
sn sinh cu nh trn thc cht l s din t thng qua cu trc cy cho mt qu trnh pht sinh
chui. Cc chui c pht sinh bt u t mt k hiu cha kt thc c bit, sau mi bc thay
th mt k hiu cha kt thc no trong chui thnh mt chui ln ln gm cc k hiu kt
thc v cha, cho n khi khng cn mt k hiu cha kt thc no na th hon thnh. Qu trnh
ny chnh l phng thc pht sinh chui ca mt vn phm, c nh ngha hnh thc nh sau:
Bi ging mn hc: Ngn ng hnh thc v Otomat
7

nh ngha : Vn phm cu trc G l mt h thng gm bn thnh phn xc nh nh sau G
(E,V, S, P), trong :
- E: tp hp cc k hiu kt thc (terminal)
- V : tp hp cc bin (variables) hay cc k hiu cha kt thc (non terminal)
- P: tp hu hn cc quy tc ng php c gi l cc lut sinh (production.
- S: k hiu cha kt thc dng lm k hiu bt u (start)

Ngi ta thng dng cc ch ci Latinh vit hoa (A, B, C, ...) ch cc k hiu trong tp bin
V; cc ch ci Latinh u bng vit thng (a, b, c, ...) dng ch cc k hiu kt thc thuc tp
E.
Nhn xt : Bng quy c ny chng ta c th suy ra cc bin, cc k hiu kt thc v k hiu bt
u ca vn phm mt cch xc nh v duy nht bng cch xem xt cc lut sinh. V vy,
biu din vn phm, mt cch n gin ngi ta ch cn lit k tp lut sinh ca chng.
1.4.2. S phn cp Chomsky trn vn phm
Bng cch p t mt s quy tc hn ch trn cc lut sinh, Noam Chomsky ngh mt
h thng phn loi cc vn phm da vo tnh cht ca cc lut sinh. H thng ny cho php xy
dng cc b nhn dng hiu qu v tng thch vi tng lp vn phm. Ta c 4 lp vn phm
nh sau :
1) Vn phm loi 0: Mt vn phm khng cn tha rng buc no trn tp cc lut sinh c gi
l vn phm loi 0 hay cn c gi l vn phm khng hn ch (Unrestricted Grammar)
2) Vn phm loi 1: Nu vn phm G l vn phm cc php th dng o| v tha |o|<||| th G
l vn phm loi 1 hoc cn c gi l vn phm cm ng cnh CSG (Context-Sensitive
Grammar)
Ngn ng ca lp vn phm ny c gi l ngn ng cm ng cnh (CSL)
3) Vn phm loi 2: Nu vn phm G c cc lut sinh dng Ao vi A l mt bin n v o l
mt chui cc k hiu thuc (V -T)* th G l vn phm loi 2 hoc cn c gi l vn phm phi
ng cnh CFG (Context-Free Grammar)
Ngn ng ca lp vn phm ny c gi l ngn ng phi ng cnh (CFL)
4) Vn phm loi 3: Nu vn phm G c mi lut sinh dng tuyn tnh phi (rightlinear): A >
wB hoc A > w vi A, B l cc bin n v w l chui k hiu kt thc (c th rng); hoc c
dng tuyn tnh tri (left-linear): A > Bw hoc A > w th G l vn phm loi 3 hay cn c
Bi ging mn hc: Ngn ng hnh thc v Otomat
8

gi l vn phm chnh quy RG (Regular Grammar)
Ngn ng ca lp vn phm ny c gi l ngn ng chnh quy (RL)
K hiu : L0, L1, L2, L3 l cc lp ngn ng sinh ra bi cc vn phm loi 0, 1, 2, 3 tng ng.
Ta c : L3 c L2 c L1 c L0 v cc bao hm thc ny l nghim ngt.
1.6. Cc v d v vn phm
Cho bng ch ci = { }
1 2
, ,...,
n
a a a . Xy dng vn phm sinh cc ngn ng sau:
VD 1. L = E*
VD 2. L = E
+

VD 3. L = Cc xu c di chn dng trn E
VD 4. L = Cc xu c di chn trn E
VD 5. L = Cc xu c di l trn E
VD 6. Cho bng ch ci E { } 0,1, 2 . y dng vn phm G sinh ngn ng L nh sau:
L = gm cc t bt u bng 011, cha t con 11211 v kt thc bng 1210



BI TP
Bi 1. Cho cc ngn ng sau: L
1
= {a, ab, abb, aabbb, abbaa, aaaabb, ababba}
L
2
= {., ab, bb, aba, bbb, aabb}
Tm cc ngn ng hp, giao, tch ghp, lp ca L
1
v L
2
. Tm ngn ng chia tri, chia phi ca L
1

cho L
2
. Tm ngn ng soi gng ca L
1
.
Bi 2. Cho bng ch ci E = {a, b, c}. Xy dng vn phm sinh ngn ng
L = {a
n
b
2n+1
c
k
eE*|n > 0, k > 0}
Bi ging mn hc: Ngn ng hnh thc v Otomat
9

CHNG II: NGN NG CHNH QUY V OTOMAT HU HN
2.1. Ngun v ngn ng c sinh bi ngun
2.1.1. nh ngha: Ngun l mt a th c hng v c khuyn, c mt nh tch ra lm nh
vo, k hiu l( O), mt tp con cc nh m mi nh ny c gi l mt nh ra hay nh kt
v t trong mt ch nht (), ng thi trn mi cung ghi mt k hiu thuc bng ch ci E
{.}.
Cung trn ghi t rng gi l cung rng hay cung trng v thng ngi ta khng ghi t
rng trn cc cung ny. Cung trn ghi k hiu thuc E c gi l cung ct yu. nh kt yu
l nh c cung ct yu i ti.
V d v ngun :








2.1.2. Ngun n nh
Ngun I c gi l ngun n nh nu n khng cha cung rng v hai cung ty xut
pht t mt nh u c ghi bng hai k hiu khc nhau. Ngun I
1
l ngun n nh.
2.1.3. Ngun y
Ngun y l ngun m t mt nh cc cung i ra phi cha y cc k hiu e bng
ch ci E.
2.1.4. Ngun n nh v y
L ngun va n nh va y
V d :




r
0
r
1
r
2
a,b,c
c
a b,c
a,b
Hnh 1.2. Ngun n nh v y I
2

S
1
S
2
S
3
S
4
S
5
a
b,c
a,c
b,a
c
a
Hnh 1.1. Ngun I
1

Bi ging mn hc: Ngn ng hnh thc v Otomat
10


2. 1. 5. T c sinh bi ngun
- T c sinh bi ngun l dy cc k hiu ca bng ch ci E nm trn cc cung ca
ngun i t nh vo v n mt trong nhng nh kt.
- Ngn ng c sinh bi ngun I l tp hp cc t c sinh bi ngun I, k hiu l N(I) =
{x e E*| x e N
I
(v(I),s), s e F(I)}.
Trong v(I) : nh vo
F(I) : Tp nh kt
- Theo ngun trn ta xc nh ngn ng c sinh bi ngun I
N
I
(s
1
,s
3
) = {b,c}
N
I
(s
1
,s
4
) = N
I
(s
1,
s
3
).{b,a}.c
*
= {b,c}.{b,a}.{c
s
|s = 0,1,2,}
= {bbc
s
,bac
s
,cbc
s
,cac
s
| s = 0,1,2}
N
I
(s
1,
s
2
) = {a} N
I
(s
1
,s
4
).{a} = {a}. {bbc
s
a,bac
s
a,cbc
s
a,cac
s
a}
={bbc
s
a,bac
s
a,cbc
s
a,cac
s
a,a

| s=0,1,2}
N
I
(s
1
,s
5
)=N
I
(s
1
,s
2
).{a,c} =
bbc
s
aa,bac
s
aa,cbc
s
aa,cbc
s
aa,aa,bbc
s
ac,bac
s
ac,cbc
s
ac,cac
s
ac,ac|s=0,1,2}
Ngn ng c sinh bi ngun I
1
l :
N(I
1
) = N
I
(s
1
,s
4
) N
I
(s
1
,s
5
) = {bbc
s
,bac
s
,cbc
s
,cac
s
|s = 0,1,2} bbc
t
aa, bac
t
aa, cbc
t
aa,
cbc
t
aa, aa, bbc
t
ac, bac
t
ac, cbc
t
ac, cac
t
ac, ac |t = 0,1,2} = {aa, ac, bbc
s
, bac
s
, cbc
s
, cac
s
, bbc
t
aa,
bac
t
aa, cbc
t
aa, cbc
t
aa, bbc
t
ac, bac
t
ac, cbc
t
ac, cac
t
ac |s, t = 0,1,2}
2.2. Cc php ton trn ngun
2.2.1. Php n nh ha
Gi s ngun I cha n nh v y trn bng ch ci E, cn xy dng ngun K n
nh, y tng ng vi n.
Thut ton n nh ho ngun nh sau:
1) i vi k hiu a ty thuc E v nh s ty ca ngun I xc nh tp:
T
1
(s,a) = {u e D(I) |a e N(s,u)}.
i vi tp con M ty ca tp D(I) v mi k hiu a e E xc nh tp:
H
1
(M,a) =

M se
T
1
(s,a).
2) Xy dng ngun n nh y K
a. nh v cung:
Bi ging mn hc: Ngn ng hnh thc v Otomat
11

nh vo ca K: v(K)= {v(I)}.
i vi mi nh M e A(K) c xc nh, ta xc nh nh H
1
(M,a) v k mt cung trn
ghi k hiu a i t nh M sang nh H
1
(M,a).
b.Tp nh kt ca K :
F(K) = {M e A(K) | M F(I) = C }
c.Vi cch xy dng nh trn c ngun K tng ng vi ngun I v K n nh, y .
Ch : Nu ta loi tp rng ra khi A(K) th ngun K nhn c n nh, nhng khng y
.
V d : Cho ngun cha n nh v y I :





Thc hin n nh ha ngun I :





Ngun n nh y , tng ng vi I l :






2. 2. 2. Php ly phn b
Gi s I l ngun ty trn bng ch ci E. xy dng ngun sinh ngn ng phn b ca
ngn ng do I sinh ra ta thc hin mt thut ton gm cc bc sau:
1. Nu I cha n nh v y , ta xy dng ngun K n nh, y tng ng vi I,
tc l N(I)= N(K).
S
0
S
1
S
2
a,b
a b
a,b
Hnh 1.3. Ngun I cha n nh y
q
0
={S
0
}
q
2
={S
0
,S
2
}
a
q
1
={S
0
,S
1
}
q
2
={S
0
,S
2
}
b
b
b
a
a
b b
q
0
q
1
q
2
q
3
a a
a
b
a
b
a
b
Hnh 1.4. Ngun I' n nh y
Bi ging mn hc: Ngn ng hnh thc v Otomat
12

2. Trn ngun K ta i cc nh kt thnh khng kt v khng kt thnh kt. Khi ngun
nhn c s sinh ra ngn ng phn b ca ngn ng do ngun K sinh ra.
Vy N(M) = C
E
N(K) = C
E
N(I).
2.2.3. Php hp ngun
Gi s I
1
v I
2
l cc ngun trn bng ch ci E. Cn xy dng ngun I sinh ngn ng l hp
ca hai ngn ng do I
1
v I
2
sinh ra, tc l N(I) = N(I
1
) N(I
2
). Ngun I c gi l ngun hp
ca cc ngun I
1
v I
2
.
Thut ton:
xy dng ngun I hp ca hai ngun I
1
v I
2
, ta gi nguyn cu trc ca I
1
v I
2
, thm
vo mt nh mi (khng ph thuc I
1
cng nh I
2
) v tha nhn nh ny l nh vo ca ngun
I, ng thi t nh mi thm vo k cc cung rng i ti cc nh v(I
1
) v v(I
2
).
Tp nh kt ca ngun I l F(I) = F(I
1
) F(I
2
).
Vi cch xy dng trn d dng nhn thy rng: N(I) = N(I
1
) N(I
2
).
Ch : Ta c th m rng php hp trn cho s (s>2) ngun ty .
nh l: i vi s (s > 1) ngun ty I
1
, I
2
,, I
n
lun lun xy dng c ngun I, n
sinh ra ngn ng l hp ca cc ngn ng do I
1
, I
2
,, I
n
sinh ra, tc l N(I)=

s
i 1 =
N(I
i
).
Cho 2 ngun I
1
v I
2
:







Hp ca I
1
v I
2
l :






Hnh 1.5. Ngun I
1
v I
2
q
0
q
1
q
2
b a
c
S
0
S
2
a
c
b
S
1
Hnh 1.6. Hp ca I
1
v I
2
v(I)
S
0
S
2
a
c
b
q
0
q
1
q
2
b a
c
S
1
Bi ging mn hc: Ngn ng hnh thc v Otomat
13



2.2.4. Php giao ngun
Gi s c cc ngun I
1
, I
2
. Cn xy dng ngun I, sinh ngn ng l giao ca cc ngn ng do
I
1
, I
2
sinh ra, tc l N(I)= N(I
1
) N(I
2
). Ngun I c gi l ngun giao ca cc ngun I
1
, I
2
.
Thut ton xy dng ngun giao I:
c ngun giao I ca cc ngun I
1
, I
2
ta xc nh nh v cung ca n bng php quy np
nh sau:
1. nh vo ca ngun I: v(I) = {v(I
1
), v(I
2
)};
2. Gi s B = (P,Q), trong P _ D(I
1
), Q _ D(I
2
) l cc nh ty c xc nh v a
l k hiu bt k thuc E. Khi xc nh nh C =
1
I
H (P,a),
2
I
H (Q,a)), ng thi k mt cung
trn ghi k hiu a, i t nh B sang C.
3. nh D = (S,R) c tha nhn l nh kt ca ngun I (D eF(I)) khi v ch khi S F(I
1
)
= C v R F(I
2
) = C.
Vi cch xy dng trn ngun I

sinh ngn ng l giao ca cc ngn ng do I
1
, I
2
sinh ra.
Ly v d vi 2 ngun I
1
v I
2
(hnh 1.5 )










S
0
, q
0
C, q
1
C, S
2
S
2
,C
C,C

C, q
2
a
c
b
b
a,b,c
a,c
a,b,c
a,b,c
c
a,b
S
0
,q
0
Bi ging mn hc: Ngn ng hnh thc v Otomat
14

Ngun giao ca chng l :




2.2.5. Php tch ghp hai ngun
i vi hai ngun I
1
, I
2
ty , cn xy dng ngun I, sinh ngn ng l tch ghp ca cc
ngn ng do I
1
, I
2
sinh ra, tc l N(I)= N(I
1
).N(I
2
).
Ngun I c gi l ngun tch ghp ca ngun I
1
, I
2
.
Thut ton xy dng ngun tch ghp:
xy dng ngun tch ghp (I) ca cc ngun I
1
,I
2
, ta gi nguyn cu trc ca I
1
,I
2
tha
nhn nh vo I
1
l nh vo ca ngun I(v(I)=v(I
1
)), cc nh kt ca ngun I
2
l nh kt ca
ngun I(F(I)=F(I
2
)), ng thi t mi nh kt ca ngun I
1
k mt cung rng i ti nh vo ca
ngun I
2
. ng thi chuyn cc nh kt ca I
1
thnh nh thng.
Vi cch xy dng nh trn ngun I, sinh ngn ng l tch ghp ca cc ngn ng do I
1
, I
2

sinh ra.
Tch ghp ca hai ngun I
1
v I
2
(hnh 1.5)
:










2.2.6. Php lp
i vi ngun I
1
ty , cn xy dng ngun I
1
sinh ngn ng l lp ca ngn ng do I sinh
ra. Ngun I
1
c gi l ngun lp ca ngun I.
Thut ton xy dng ngun lp I:
xy dng ngun I, sinh ngn ng l lp ca ngn ng do ngun I
1
sinh ra, ta gi nguyn
S
1 S
0
a
Hnh 1.7. Ngun giao cu I
1
v I
2
S
0
a
c
b
q
0
q
1
q
2
b a
c
S
1
S
2
Hnh 1.8. Tch ghp 2
ngun I
1
v I
2

Bi ging mn hc: Ngn ng hnh thc v Otomat
15

cu trc ca I
1
, thm vo mt nh mi v tha nhn nh ny l nh vo ng thi l nh kt
duy nht ca ngun I. T nh mi k thm mt cung rng i ti nh v(I
1
), ng thi t mi
nh kt ca ngun I
1
k mt cung rng i ti nh mi thm.
Ngun sinh ngn ng l lp ct ca ngn ng c sinh bi I
1
ch khc vi ngun trn ch:
nh mi thm ch c tha nhn l nh vo, cn tp nh kt ca I
1
c tha nhn l nh kt
ca ngun mi.
Vi cch xy dng trn ngun lp (ngun lp ct I) sinh ngn ng l lp (lp ct) ca ngn
ng do I
1
sinh ra, tc l N(I) = N(I
1
)
*
(N(I) = N(I
1
)
*
) .


Ngun lp ca ngun I
1 :









2.2.7. Php soi gng ngun
i vi ngun I
1
ty , cn xy dng ngun I sinh ngn ng soi gng ca ngn ng do I
1

sinh ra. Ngun I c gi l ngun soi gng ca ngun I
1
.
Thut ton xy dng ngun soi gung:
c ngun I sinh ngn ng soi gng ca ngn ng do I
1
sinh ra ta thc hin cc bc
sau:
1) Thm vo mt nh mi, tha nhn n l nh vo ca ngun I, ng thi t nh mi
thm (v(I)) k cc cung rng i ti nh kt ca ngun I
1
.
2) Tha nhn nh vo ca I
1
(v(I
1
)) l nh kt duy nht ca ngun I.
F(I) = {v(I
1
)};
3) i vi mi cung ca ngun I
1
, gi nguyn k hiu ghi trn n, nhng i chiu ngc
li.
S
0
S
2
a
c
b
S
1
S
I
Hnh 1.9. Ngun lp ca I
1
Bi ging mn hc: Ngn ng hnh thc v Otomat
16

Vi cch xy dng trn ta c : N(I) = N(I
1
).
Ngun soi gng ca I
1
:









2.2.8. Php chia tri
Gi s I
1
, I
2
l cc ngun trn bng ch ci E. Cn xy dng ngun K sinh ngn ng l
thng bn tri ca cc ngn ng do I
1
, I
2
sinh ra.Ngun K c gi l ngun thng bn tri ca
cc ngun I
1
, I
2
.
Thut ton xy dng ngun thng bn tri:
1) Xy dng ngun giao I ca cc ngun I
1
, I
2
.
2) Thm vo mt nh mi v tha nhn nh ny l nh vo ca ngun K. k hiu bng
v(K);
3) Tp nh kt: F(K) = F(I
1
);
4) Gi s Q = (S,T) l mt nh ty ca ngun giao I. Khi i vi mi nh x eS (S _
A(I
1
)) t nh vo ca ngun K (v(K)) c cung i ti x khi v ch khi T F(I
2
) = C.

Vi cch xy dng ny ta c: N(K) =

2. 2. 9. Php chia phi
Gi s I
1
, I
2
l cc ngun trn bng ch ci E. Cn xy dng ngun K sinh ngn ng l
thng bn phi ca cc ngn ng do I
1
, I
2
sinh ra. Ngun K c gi l ngun thng bn phi
ca cc ngun I
1
, I
2
.
Thut ton xy dng ngun thng bn phi:
1) Da vo cu trc ca I
1
i vi mi s
1
eD(I
1
) xy dng ngun I
s
i
c nh vo l s
i
(v(I
s
i
)
= s
i
) v F(I
s
i
) = F(I
1
)
N(I
1
)
N(I
2
)
S
1
a
c
b
S
0
S
2
S
I
Hnh 1.10. Ngun soi gng ca I
1
Bi ging mn hc: Ngn ng hnh thc v Otomat
17

2) Xy dng ngun giao K
1
ca I
1
v I
2
.
i vi mi I
s
i
xy dng ngun giao K
s
i
ca I
s
i
v I
2
.
3) Xy dng ngun thng bn phi (K) ca ngun I
1
v I
2
.
Ngun K nhn c trn c s bin i ngu nhin bng cch sau:
- Tha nhn nh vo ca I
1
l nh vo ca ngun K, tc l v(K) v(I
1
) .
- nh s
i
e D(I
1
) c tha nhn l nh kt ca ngun K v ch khi N(K
s
i
) = C
Vi cch xy dng nh trn ngun K sinh ngn ng l thng bn phi ca cc ngn ng
I
1
,I
2
sinh ta, tc l N(K) =
N(I
1
)
N(I
2
)
Bi ging mn hc: Ngn ng hnh thc v Otomat
18

2. 3. Otomat hu hn khng li ra v ngn ng c on nhn bi otomat hu hn khng
li ra:
Nghin cu cc Otomat l mt phn rt quan trng trong l thuyt tin hc. Chng c dng
on nhn cc ngn ng. C bn loi Otomat thng c s dng, l Otomat hu hn
khng li ra on nhn cc lp ngn ng chnh quy. Otomat hu hn c li ra vi chc nng bin
i t vo thnh mt t c cng di. Otomat xc sut on nhn lp ngn ng ngu nhin. V
cui cng l Otomat y xung dng on nhn lp ngn ng phi ng cnh. Phn ny ta s
nghin cu v Otomat hu hn.
2. 3.1. Otomat n nh (H)
Mt cch trc quan ta c th quan nim Otomat hu hn nh mt my on nhn xu, m
cc b phn v cung cch lm vic ca n nh sau:
- C mt bng vo, dng ghi xu vo (xu cn c on nhn); mi k hiu ca xu vo
(thuc mt b ch ci E ) c ghi trn mt ca bng vo.
- C mt u c, mi thi im quan st mt trn bng vo.
- C mt b iu khin Q gm mt s hu hn trng thi; mi thi im n c mt trng
thi (Hnh 1.3.1).









- Otomat hu hn lm vic theo tng bc ri rc. Mi bc lm vic c m t nh sau:
Ty theo trng thi hin thi ca b iu khin v k hiu u c quan st c, m otomat
chuyn sang mt trng thi mi, ng thi u c dch chuyn sang phi mt . Quy lut
chuyn sang trng thi mi c cho bi mt hm, gi l hm chuyn, o : Q E Q.
- Trong Q c phn bit mt trng thi q
0
, gi l trng thi u v mt tp hp F cc trng
thi gi l cc trng thi cui.
- Ta ni Otomat on nhn (hay tha nhn) mt xu vo v e E
*
, nu Otomat xut pht t
0 1 1 0 0 1 1 1
Hnh 1.3.1. Cc b phn ca Otomat hu hn
Bng vo
Q
B iu khin
Bi ging mn hc: Ngn ng hnh thc v Otomat
19

trng thi u q
0
, vi u c quan st k hiu bn tri nht ca xu v, sau mt s hu hn bc
lm vic, n c xong xu v (tc l u c vt khi mt phi ca v) v ri vo mt trong cc
trng thi cui.
- Tp hp mi xu c on nhn bi Otomat hp thnh ngn ng c on nhn bi
Otomat .
Ta ch rng tp Q th hin cc trng thi ghi nh ca Otomat trong qu trnh on nhn, v
nh vy kh nng ghi nh ca Otomat l hu hn. Mt khc, hm chuyn o l hm ton phn v
n tr, cho nn bc chuyn ca Otomat lun lun c xc nh mt cch duy nht. Chnh v
hai c im ny m Otomat m t nh trn c gi l Otomat hu hn n nh.
V d 1.3.1 : Xt H A, trong
E = {0,1}, Q = {q
0
, q
1
, q
2
, q
3
} , F= {q
0
}
Hm o cho nh sau :
o o
q
0
q
1
q
2
q
3

0 q
2
q
3
q
0
q
1

1 q
1
q
0
q
3
q
2


cho d hnh dung hn, ta thng biu din hm chuyn di dng mt th nh hng,
gi l biu chuyn nh sau: Mi nt tng ng vi mt trng thi, nt u tr bi mt mi tn
c ch u nt cui c khoanh bi hai vng. Nu c o(q,a) = p th c mt cung i t nt q
n p, v cung mang nhn a. Biu chuyn cho Otomat hu hn ni trn s nh hnh sau :






Cho xu vo 110101. Qu trnh on nhn xu vo din t bng cc bc chuyn nh sau,
trong cho gn hnh v ta lc bt cc khung ca bng vo v ca b iu khin :




q
0 q
1
q
3
q
2
u
1
1
1
1
1
1
0
0
q
0
110101
q
1
q
0
q
2
q
3 q
1
110101 110101 110101 110101 110101 110101
q
0
Bi ging mn hc: Ngn ng hnh thc v Otomat
20

V q
0
e F, vy xu vo 110101 c tha nhn.
2. 3. 1. 1. nh ngha
Otomat hu hn n nh, khng li ra l mt b nm :
A = {S, E, S
0
,
o, F }
Trong :
S : Tp hu hn cc trng thi ca Otomat
E : Bng ch ci vo ca Otomat
S
0
eE : Trng thi khi u
o : S x E S : Hm chuyn trng thi
F e S : Tp cc trng thi cui
Ta gi mt hnh trng ca H l mt xu c dng qx vi q e Q v x e E*. C th hiu
rng xu qx biu din cho tnh hung tc thi ca H mt lc no : H ang trng
thi q, cn x l phn xu vo cha c vt qua trn bng, v k hiu c nhm lc l k
hiu bn tri nht ca x (hnh di)






Qu trnh on nhn mt xu vo ca H l qu trnh bin i cc hnh trng qx p da
vo hm chuyn o. Nu c xu vo w = x
1
x
2
x
n
th qu trnh on nhn nh sau:
S
0
x
1
x
2
x
n
S
1
x
2
x
n
S
n
x
n
S
n+1
. Trong S
0
w (vi S
0
l trng thi u)
c gi l hnh trng u. Nu S
n+1
e F th ta ni xu w c A tha nhn (on nhn)
V d 1.3.2 Cho H A :
A=({S
0
,S
1
,S
2
}, {a,b,c}, S
0
, o ,{S
2
}) vi hm chuyn o nh sau :
o
S
0
S
1
S
2
a S
1
S
0
S
1
b S
0
S
1
S
2

c S
1
S
2
S
2

x
q
Hnh 1.3.3 . Mt tnh hung tc thi ca H
Bi ging mn hc: Ngn ng hnh thc v Otomat
21

Qu trnh on nhn xu w = aabccb l :
S
0
aabccb S
1
abccb S
0
bccb S
0
ccb

S
1
cb S
2
b S
2

*) Cc tnh cht ca hm chuyn trng thi
o ( s, .)=S, s eS
o (s, ax) = o (o (s, a), x), a e E , x e E
*
, s e S
2. 3. 1. 2. Ngn ng on nhn bi Otomat hu hn n nh
L tt c cc t (xu) e E
*
c on nhn bi H, k hiu l T(A)
T(A) = {x e E
*
| o (S
0
, x )e F}

2. 3. 2. Otomat khng n nh (HK)
2. 3. 2. 1. nh ngha
Otomat hu hn khng n nh l mt b nm
A={S, E, S
0
, o, F}
Trong :
S: Tp hu hn cc trng thi
E: Bng ch ci
S
0
e S : Trng thi khi u
o : S x E P (P l mt tp trng thi e S)
F e S: Tp cc trng thi kt
V d 1.3.3. A=({t
0
, t
1
, t
2
}, {0, 1}, {t
0
}

, o, {t
1
,t
2
}


o
t
0
t
1
t
2
0 t
1
{t
0,
t
1
} t
1

1 {t
1,
t
2
} t
0



*) Mt s tnh cht ca HK
o(Q, . )= Q, (Q=

S Si
Si
e
)
o (Q, ax)=o (o (Q,a),x) , a e E, x e E
*

Bi ging mn hc: Ngn ng hnh thc v Otomat
22

o(Q,a)= P, (P=

Q Sie
o (S,a))
Qu trnh on nhn xu vo ca HK tng t nh ca H.
V d i vi HK A on nhn xu 00101 nh sau:
t
0
00101 t
1
0101 {t
0,
t
1
}101 {t
0,
t
1
}01 {t
0,
t
1
}1 {t
1,
t
2
) e F

2. 3.2.2. Ngn ng c on nhn bi Otomat hu hn khng n nh
Ngn ng c on nhn bi Otomat khng n nh l cc xu e E
*
y Otomat t trng
thi u ti mt trong cc trng thi kt, k hiu l T(A)
T(A) ={x e E*| o(s
0
,x) F = C}
Lu : Otomat A v otomat B c gi l hai otomat tng ng nhau nu chng on
nhn cng mt ngn ng, tc l T(A) = T(B)
2. 3.3. Tnh y v n nh ca Otomat
nh ngha: Otomat hu hn (n nh hay khng n nh)
A = (S, E, S
0
, o, F)
c gi l mt otomat y nu hm chuyn trng thi xc nh khp ni trn tp S E, ngha
l s e S, a e E u c o( s, a) e S trong trng hp A n nh v o(s, a) S = C trong
trng hp A khng n nh.
nh ngha: Otomat A c gi l otomat n nh v y nu n va l otomat n nh
va l otomat y .
V d 1.3.4 Cho Otomat
A= ({s
0
, s
1
, s
2
, s
3
, s
4
}, {a,b,c}, s
0
, o, {s
1
, s
2
})
Trong hm chuyn trng thi c xc nh bng bng sau :

o
s
0
s
1
s
2
s
3
s
4
a s
1
s
2
s
1
s
4
s
4
b s
2
s
3
s
4
s
3
s
4
c s
3
s
4
s
3
s
2
s
4

Nhn xt : Cn c vo bng chuyn ca otomat
A = (S, E , S
0
, o, F)
ta c nhn xt sau y :
Bi ging mn hc: Ngn ng hnh thc v Otomat
23

1. Otomat A n nh khi v ch khi trong bng chuyn ca n khng c v tr no cha qu
mt trng thi thuc S.
2. Otomat A y khi v ch khi mi v tr ca bng chuyn u cha t nht mt trng thi
thuc S.
2. 3.4. Php n nh ho mt Otomat
Gi s A = (S, E, S
0
, o, F) l mt Otomat cha n nh hoc cha y . Cn xy dng
otomat M n nh v y tng ng vi A (on nhn cng ngn ng do A on nhn).
Thut ton n nh ho:
Gi s A=(S, E, S
0
,

o, F) l mt Otomat hu hn khng li ra ty . xy dng otomat M
hu hn n nh, dy v tng ng vi A ta thc hin mt s bc sau:
1) Xc nh hm hai bin :
T: 2
s
E 2
s

bng cc quan h sau:
s e S, a e E , T(s, a)={s e S | s e o(s,a) }
B _ S, a e E, T(B,a)=

B se
T(s,a)
2) Khi otomat M l mt b nm:
M = (Q, E, Q
0
, f, P )
trong : Q _ 2
s
, Q
0
= {S
0
}, P = {q e Q| q F = C }
V hm chuyn trng thi f c xc nh bng quan h sau:
q e Q, a e E (f(q, a) = T(q, a))
Vi cch xc nh nh trn ta c T(M) = T(A).
V d 1.3.5. Cho Otomat n nh
A
1
= ({s
0
, s
1
, s
2
, s
3
}, {a, b, c}, s
0
, o
1
, {s
2
, s
3
})
vi hm chuyn o c xc nh bng bng chuyn sau :

o
1
s
0
s
1
s
2
s
3

a s
1
s
2
s
1

b s
2
s
2
s
3

c s
3
s
3
s
2


Xy dng Otomat M
1
n nh, y tng ng vi otomat A .
Bi ging mn hc: Ngn ng hnh thc v Otomat
24

V A n nh nhng cha y nn ta ch cn thm vo mt trng thi mi (s
4
) cho
hm chuyn xc nh khp ni, ta c otomat M
1
tng ng vi A
1
M
1
= ({s
0
, s
1
, s
2
, s
3
, s
4
}, {a, b, c}, s
0
, o
1
, {s
2
, s
3
})
Trong hm chuyn c xc nh bng bng sau:

o
1
s
0
s
1
s
2
s
3
s
4

a s
1
s
2
s
1
s
4
s
4

b s
2
s
2
s
4
s
3
s
4

c s
3
s
4
s
3
s
2
s
4


V d 1.3.6 : Cho Otomat A
A= ( { s
0
, s
1
, s
2
}, {0,1}, {s
0
}, o, {s
2
})
trong o xc nh bng bng sau :

o
s
0
s
1
s
2

0 {s
0
, s
1
} s
1

1 s
2
s
0


A cha n nh v y , tin hnh n nh ho Otomat ta c Otomat n nh, y
nh sau :
T(s
0
, 0) = {s
0
, s
1
} = q
1
T(s
0
, 1) = C = q
2
T(s
1
, 0) = C = q
2
T(s
1
, 1) = {s
2
} =q
3
T(s
2
, 0) = {s
1
}

= q
4
T(s
2
, 1) = {s
0
} = q
0
T(q
1
, 0)= T( {s
0
, s
1
}, 0)= T(s
0
, 0) T(s
1
, 0) = {s
0
, s
1
} C = {s
0
, s
1
} = q
1
T(q
1
, 1) = T({s
0
, s
1
}, 1) = T(s
0
, 1) T(s
1
, 1) = {s2} = q
3
T(q
3
, 0) = T(s
2
, 0) ={s
1
}= q
4
T(q
3
, 1) = T(s
2
, 1) ={s
0
} = q
0

T(q
4
, 0) = T(s
1
, 0) = C = q
2
Bi ging mn hc: Ngn ng hnh thc v Otomat
25

T(q
4
, 1) = T(s
1
, 1) = {s
2
} =q
3
Ta xc nh c Otomat n nh y A
1
vi Otomat A nh sau :
A
1
= ({q
0
, q
1
, q
2
, q
3
, q
4
}, {0, 1}, {q
0
}, o
1
, {q
3
)
v hm chuyn o
1
c cho bng bng sau :

o
1
q
0
q
1
q
2
q
3
q
4

0 q
1
q
1
q
2
q
4
q
2

1 q
2`
q
3
q
2
q
0
q
3


Bi ging mn hc: Ngn ng hnh thc v Otomat
26

2. 4. S tng ng ca ngun v Otomat hu hn khng li ra
nh ngha: Ngun I v Otomat hu hn khng li ra A c gi l tng ng nu chng
sinh ra cng mt ngn ng, ngha l N(I)=N(A).
Vn t ra l: Khi c ngun I cn xy dng Otomat A tng ng vi n, v ngc li,
khi cho mt otomat hu hn khng li ra cn xy dng ngun I tng ng vi otomat ny.
2.4.1. Xy dng otomat tng ng vi ngun
2.4.1.1. Xy dng Otomat c th khng n nh tng ng vi ngun
Thut ton:
Gi s c ngun I trn bng ch ci E . xy dng otomat A c th khng n nh y
tng ng vi ngun I ta thc hin mt s bc sau:
1) Xy dng hm hai bin T:
T: 2
D(I)
E 2
D(I)

c xc nh bng quan h sau:
s e (D(I) {v(I)}), a e E, T(s,a)={q _ D(I)}
a e E, T(C,a) = C
2) Xc nh tp trng thi kt v trng thi khi u
Tp {v(I)} c tha nhn l trng thi khi u ca otomat A v c k hiu l
Q
0
.
Tp trng thi kt (F) ca otomat c xc nh nh sau:

{q _ D(I) | q F(I) = | } {q
0
} nu . e N(I)
{q _ D(I) | q F(I) = |} nu . e N(I)
3) Otomat khng n nh A c dng :
A=(Q, E ,Q
0
, o, F)
Trong Q l tp trng thi ca Otomat v hm chuyn trng thi o c xc nh bng quan
h:
q e Q, a e E(o(q,a) = T(q,a)).
Bng thut ton ny ta c xy dng c otomat A tng ng vi ngun I, tc l
N(A)=N(I).
V d Cho ngun :


F =
S
0
S
1
S
2
a b
a,b,c
a,b,c
Bi ging mn hc: Ngn ng hnh thc v Otomat
27




- Xc nh tp trng thi :
T(s
0
,a)= {s
0
, s
1
}
T(s
0
,b)= {s
0
}
T(s
0
,c)= {s
0
}
T(s
1
,a) = C
T(s
1
,b)= {s
2
}
T(s
1
,c)= C
T(s
2
,a)= {s
2
}
T(s
2
,b)= {s
2
}
T(s
2
,c)= {s
2
}
- Otomat tng ng vi ngun c dng sau :
A= ({s
0
, s
1
, s
2
}, {a, b, c}, s
0
, o, s
2
)
v hm chuyn o c xc nh bng bng sau :

o
s
0
s
1
s
2

A {s
0
, s
1
} s
2

B s
0
s
2
s
2

C s
0
s
2


2.4.1.2. Xy dng Otomat tng ng n nh, y tng ng vi ngun.

Thut ton:

Gi s c ngun I trn bng ch ci E. xy dng otomat A n nh y tng ng
vi ngun I ta thc hin mt s bc sau:
1) Xy dng hm hai bin T:
T: 2
D(I)
E 2
D(I)

c xc nh bng quan h sau:
s e (D(I) {v(I)}), a e E, T(s,a)={s

e D(I) | a eN
I
(s, s

)}
Bi ging mn hc: Ngn ng hnh thc v Otomat
28

q _ D(I), a e E, T(q,a) =

q se
T(s,a)
a e E, T(C,a) = C
2) Xc nh tp trng thi kt v trng thi khi u
Tp {v(I)} c tha nhn l trng thi khi u ca otomat A v c k hiu l
Q
0
.
Tp trng thi kt (F) ca otomat c xc nh nh sau:

{q _ D(I) | q F(I) = | } {q
0
} nu . e N(I)
{q _ D(I) | q F(I) = |} nu . e N(I)

3) Otomat n nh y A c dng :
A=(Q, E ,Q
0
, o, F)
Trong Q l tp trng thi ca Otomat v hm chuyn trng thi o c xc nh bng quan
h:
q e Q, a e E(o(q,a) = T(q,a)).
Bng thut ton ny ta c xy dng c otomat A tng ng vi ngun I, tc l
N(A)=N(I).
Xt v d trn, ta i xy dng Otomat n nh y tng ng vi ngun.
T(s
0
,a) = {s
0
, s
1
} = q
1
T(s
0
,b) = {s
0
} = q
0
T(s
0
,c) = {s
0
} = q
0
T(s
1
,a) = C = q
2
T(s
1
,b) = {s
2
} = q
3
T(s
1
,c) = C = q
2
T(s
2
,a) = {s
2
} = q
3
T(s
2
,b) = {s
2
} = q
3
T(s
2
,c) = {s
2
} = q
3
T(q
1
,a) = T({s
0
, s
1
},a) = T(s
0
,a) T(s
1
,a)= {s
0
, s
1
} C ={s
0
, s
1
} = q
1
T(q
1
,b) = T({s
0
, s
1
},b) = T(s
0
,b) T(s
1
,b) = {s
0
, s
2
} = q
4
T(q
1
,c) = T(({s
0
, s
1
},c) = T(s
0
,c) T(s
1
,c) = {s
0
} C = s
0
= q
0
T(q
3
,a) = T(s
2
,a)= q
3
F =
Bi ging mn hc: Ngn ng hnh thc v Otomat
29

T(q
3
,b) = T(s
2
,b)= q
3
T(q
3
,c) = T(s
2
,c)= q
3

T(q
4
,a) = T({s
0
, s
2
},a) = T(s
0
,a) T(s
2
,a) = {s
0
, s
1
} {s
2
} = {s
0
, s
1
, s
2
} = q
5
T(q
4
,b) = T({s
0
, s
2
},b) = T(s
0
,b) T(s
2
,b) ={s
0
, s
2
} = q
4
T(q
4
,c) = T({s
0
, s
2
},c) = T(s
0
,c) T(s
2
,c) ={s
0
, s
2
} = q
4
T(q
5
,a) = T({s
0
, s
1
, s
2
},a) =T(s
0
,a) T(s
1
,a) T(s
2
,a) = ({s
0
, s
1
, s
2
} = q
5
T(q
5
,b) = T({s
0
, s
1
, s
2
},b) =T(s
0
,b) T(s
1
,b) T(s
2
,b) = ({s
0
, s
2
} = q
4
T(q
5
,c) = T({s
0
, s
1
, s
2
},c) =T(s
0
,c) T(s
1
,c) T(s
2
,c) = ({s
0
, s
2
} = q
4

Vy Otomat A n nh v y tng ng vi ngun l :
A=({q
0
, q
1
, q
2
, q
3
, q
4
, q
5
}, {a, b, c}, q
0
, o, {q
3
, q
4
, q
5
})
v hm chuyn trng thi o c xc nh bng bng sau :
o
q
0
q
1
q
2
q
3
q
4
q
5

a q
1
q
1
q
2
q
3
q
5
q
5

b q
0
q
4
q
2
q
3
q
4
q
4

c q
0
q
0
q
2
q
3
q
4
q
4


2.4.2. Xy dng ngun tng ng vi Otomat
Thut ton:
Gi s c otomat A =(S, E, S
0
, o, F).Ta xy dng ngun I tng ng vi otomat bng cc
bc thc hin sau:
1) Xc nh nh: Ly cc im trn mt phng hoc trong khn gian tng ng cc trng
thi ca otomat v dng ngay cc k hiu trng thi t tn cho cc im tng ng.
nh tng ng vi trng thi khi u c tha nhn l nh vo ca ngun, ng thi
cng oc k hiu bng v(I) (v(I) S
0
).
nh s c tha nhn l nh kt khi v ch khi s e F.
2) Xc nh cnh : s, s e S, a e E .T nh s sang tp cc nh

s
i
c cung ghi k
hiu a khi v ch khi s
i
e o(s,a).
Bng thut ton ny ta xy dng c ngun tng ng vi otomat A.
V d : Cho Otomat A= ({s
0
, s
1
, s
2
}, {a, b, c}, s
0
, o, s
2
)
o
s
0
s
1
s
2
Bi ging mn hc: Ngn ng hnh thc v Otomat
30

a s
1
s
1
s
2

b s
1

c {s
1
,s
2
}

Xy dng ngun tng ng vi Otomat :





2. 5. S tng ng ca ngun v vn phm chnh quy
2.5.1. Xy dng ngun tng ng vi vn phm chnh quy.
Thut ton
V d
2.5.2. Xy dng vn phm chnh quy tng ng vi ngun.
Thut ton
V d
2. 6. S tng ng ca ngun v biu thc chnh quy
2. 6.1. Xy dng ngun tng ng vi biu thc chnh quy.
Thut ton
V d
2. 6.2. Xy dng biu thc chnh quy tng ng vi ngun.
Thut ton
V d
2. 7. Bi tp tng hp
Cho mt ngn ng chnh quy L. Xy dng ngun, vn phm chnh quy, Otomat hu hn v biu
thc chnh quy sinh ngn ng L
Cho bng ch ci = { }
1 2
, ,...,
n
a a a . Xy dng vn phm sinh cc ngn ng sau:
VD 1. L = E*
VD 2. L = E
+

VD 3. L = Cc xu c di chn dng trn E
VD 4. L = Cc xu c di chn trn E
VD 5. L = Cc xu c di l trn E
S
0
S
1
S
2
a
c
a,b,c a
Bi ging mn hc: Ngn ng hnh thc v Otomat
31

VD 6. Cho bng ch ci E { } 0,1, 2 . y dng vn phm G sinh ngn ng L nh sau:
L = gm cc t bt u bng 011, cha t con 11211 v kt thc bng 1210

2. 8. Tnh ng ca lp ngn ng chnh quy
2.8.1. Lp ngn ng chnh quy
2.8.2. Tnh ng ca lp ngn ng chnh quy
2. 9. iu kin cn ca lp ngn ng chnh quy
2.9.1. Otomat ti tiu
2.9.2. iu kin cn ca lp ngn ng chnh quy.
2. 10. iu kin cn v ca lp ngn ng chnh quy
2.10.1. Quan h tng ng bt bin phi ch s hu hn
2.10.2. iu kin cn v
2. 11. Otomat hu hn c li ra
2.10.1. nh ngha
2.10.2 Cch biu din
2. 12. e-Ngn ng chnh quy (Siu ngn ng chnh quy)
2.12.1. Cc nh ngha
2.12.2. Cc php ton trn siu ngn ng
2. 12. 3. Tnh ng ca siu ngn ng chnh quy.
BI TP
Bi 1. Cho bng ch ci E = {a, b, c}.
Xy dng vn phm sinh ngn ng L = {a
n
b
2n+1
c
k
eE*|n > 0, k > 0}
Bi 2. Cho 2 ngun I
1
v I
2
. Tm ngun b, ngun hp, ngun tch ghp, ngun soi gng ca I
1

v I
2
.
Bi 3.. Cho E = {a, b, c}. Xy dng ngun I sinh ngn ng sau y:
a. N(I) = {o = ab
n
cc, vi n nguyn dng}
b. N(I) = {o = ab
2n
ca, vi n nguyn dng}
c. N(I) = {o = ab
2n-1
cb, vi n nguyn dng}
d. N(I) = {o = ab|c, vi |eE*}
Bi 4. Cho E = {0, 1}. Xy dng ngun I sinh ngn ng sau y:
a. N(I) = {o = 01|0, vi |eE*}
Bi ging mn hc: Ngn ng hnh thc v Otomat
32

b. N(I) = {o = 1|1, vi | c di l}
c. N(I) = {o = 11|01, vi | c di chn dng}
d. N(I) = {o = 11|01, vi | c di chn}
Bi ging mn hc: Ngn ng hnh thc v Otomat
33

Chng 3. NGN NG PHI NG CNH V OTOMAT Y XUNG
3.1. Cy v php th cy
3.2. Dng chun Chomsky
3.3. Cy dn xut v cc tnh cht.
3.3.1. Vn v hn ca ngn ng phi ng cnh
3.3.2. Tnh ng ca lp ngn ng phi ng cnh.
3.3.3 Tnh nhp nhng ca ngn ng phi ng cnh.
3.4. Khi nim v Otomat y xung
3.4.1. Otomat y xung khng n nh v ngn ng phi ng cnh
3.4.1.1. nh ngha
3.4.1.2. Hnh trng
3.4.1.3. Hm chuyn
3.4.1.4. Ngn ng c on nhn bi Otomat y xung khng n nh.
3.4.2. Giao ca ngn ng phi ng cnh v ngn ng chnh quy.
3.4.3. Otomat y xung n nh.
3.4.3.1. nh ngha.
3.4.3.2. V d.
3.4.3.3. Tnh cht.


BI TP
Bi 1. Trnh by iu kin cn ca ngn ng chnh quy v ng dng.
Bi 2. Trnh by iu kin cn v ca ngn ng chnh quy. cho v d v phn hoch.
Bi 3. Trnh by nh ngha Otomat hu hn c li ra, cc cch biu din Otomat hu hn c li
ra. Cho v d minh ha.




Bi ging mn hc: Ngn ng hnh thc v Otomat
34

CHNG 4. C BN V CHNG TRNH DCH
4.1. Gi thiu v chng trnh dch
Chng ny s gii thiu mt cch tng quan v vn bin dch bng cch m t cc
thnh phn ca mt trnh bin dch v mi trng hat ng ca n.
Mc ch ca mn hc:
N m v

ng ca

c nguyn ly

xy d ng m t chng tri

nh di ch t

hi u v ba

n ch t va

du ng
c hiu qu cc ngn ng lp trnh . C kh nng t thit k v xy dng c mt chng trnh
dch cho mt ngn ng n gin (ngn ng

PL/0).
Nng cao kha

nng l p tri

nh thng qua ca

c ba

i th c ha

nh xy d ng ca

c tha

nh ph n cho m t
chng tri

nh di ch. Cc bi thc hnh trong mn hc l cc bi phc tp , k t h p nhi u ki n th

c
v ngn ng

hi

nh th

c , phn ti

ch vn pha m, c u tru

c va

gia

i thu t , v vy sinh vin c iu kin


luy n t p thi t k va

vi t ca

c chng tri

nh l

n, ph

c ta p cao.
Nh

ng ki n th

c cu

a mn ho c cu

ng co

th c s

du ng trong ca

c li

nh v c kha

c nh x

ly


ngn ng

t nhin.
4.2. Chng trnh dch
4.2.1. nh ngha
Chng ta u bit c rt nhiu loi my tnh khc nhau nh my PC, my Macshintos vi cc
chp khc nhau v mt ngn ng my khc nhau (tp cc ch th lnh khc nhau).Vic xy dng
cc ng dng trc tip trn ngn ng my l rt kh v phc tp. i vi cc ng dng ln th
iu ny gn nh l khng kh thi.
V vy nhu cu c mt ngn ng trung gian, gn vi ngn ng t nhin l tt yu, v khi
cn c mt h thng (chng trnh) dch cc chng trnh trn ngn ng ny sang m my
c th chy c. Nhng chng trnh lm nhim v nh vy gi l cc chng trnh dch. Ngoi
ra nhi m vu cu

a m t chng tri

nh di ch khng chi

la

chuy n m t chng tri

nh t

m t ngn ng


l p tri

nh sang ngn ng

ma

y ma

t ng qua

t la

chuy n m t chng tri

nh vi t

m t ngn ng

na

y
sang ngn ng

kha

c . Thng th

ng ngn ng

ngu n la

ngn ng

b c cao va

ngn ng

ch la


ngn ng

b c th p, v d nh t C hay Pascal sang Asembly.


Ni mt cch n gin, trnh bin dch l mt chng trnh lm nhim v c mt chng
trnh c vit bng mt ngn ng - ngn ng ngun (source language) - ri dch n thnh mt
chng trnh tng ng mt ngn ng khc - ngn ng ch (target languague). Mt phn
quan trng trong qu trnh dch l ghi nhn li cc li c trong chng trnh ngun thng bo
li cho ngi vit chng trnh.
Bi ging mn hc: Ngn ng hnh thc v Otomat
35

nh ngha: Chng trnh dch l mt chng trnh thc hin vic chuyn i mt chng
trnh hay mt on chng trnh t mt ngn ng ny (gi l ngn ng ngun) sang ngn ng
khc (gi l ngn ng ch) tng ng.
S mt chng trnh dch nh sau:



Hnh 1.1 - Mt trnh bin dch
H thng bin dch
Trong h thng bin dch nh Borland C, hay Turbo Pascal, ton b chng trnh ngun c
trnh bin dch chuyn sang chng trnh ch dng m my. Chng trnh ch ny c th
chy c lp trn my m khng cn h thng bin dch na.
H thng Thng dch (Interpreter)
Trong mt h thng thng dch, chng trnh thng dch c chng trnh ngun theo tng
lnh v phn tch ri thc hin n, v d nh h iu hnh thc hin cc cu lnh DOS, hay h
qun tr c s d liu Foxpro.
Mt kiu khc trong mt h thng thng dch l ngn ng ngun khng c chuyn sang
ngn ng my m chuyn sang mt ngn ng trung gian. Mt chng trnh s c nhim v c
chng trnh ngn ng trung gian ny v thc hin tng cu lnh. Ngn ng trung gian c
gi l ngn ng ca mt my o, v chng trnh thng dch thc hin ngn ng ny cn c
gi l my o. Mt h thng nh vy c th c m t nh s di y:

chng trnh
ngun (ngn
ng bc cao)

chng
trnh dch
chng trnh
ngun (ngn
ng bc cao)

chng trnh
ch (ngn
ng my)

Li

Bi ging mn hc: Ngn ng hnh thc v Otomat
36



Mt v d rt c trng cho h thng thng dch kiu ny l h thng dch Java. M ngun
Java c dch ra dng Bytecode. File ch ny c mt trnh thng dch gi l my o Java
thc hin. Chnh v vy m ngi ta ni Java c th chy trn mi h iu hnh c ci my o
Java.
Mt chng trnh thng dch c kch thc nh trnh bin dch nhng chy chm hn. Mt
chng trnh bin dch kt hp vi mt chng trnh thng dch to thnh mt chng trnh dch.
Cc c trng cu

a m t ngn ng

l p tri

nh b c cao
Mc ch chnh ca mn hc ny l xy dng mt chng trnh dch cho mt ngn ng bc
cao. V vy trong phn ny chng ta nhc li nhng c trng ca mt ngn ng bc cao, m
nhng c trng ny s c chng ta phn tch trong cc giai on ca mt chng trnh dch.
Chng ta s khng phn tch mi c im trong ngn ng bc cao nh lp, cu trc, i tng,
m ch xt nhng c trng c bn nht c nhng tm hiu bc u cho vic thit k v
xy dng mt chng trnh dch.
T vng
Cng nh ngn ng t nhin, ngn ng lp trnh cng c xy dng da trn b t vng.
T vng trong ngn ng lp trnh thng c xy dng da trn b ch gm c:
+ ch ci: A .. Z, a . . z
+ ch s: 0..9
+ cc k hiu ton hc: +, - , *, /, (, ), =, <, >, !, %, /
+ cc k hiu khc: [, ], . . .
Cc t vng c ngn ng hiu bao gm cc t kha, cc tn hm, tn hng, tn bin, cc
php ton, . . .
Chng trnh
ngun
Compiler
CT NN
trung gian
Interpreter
Kt qu
Hnh 1.2 H thng thng dch
Bi ging mn hc: Ngn ng hnh thc v Otomat
37

Cc t vng ny c nhng qui nh nht nh v d nh tn th vit bi ch ci u tin v sau
l khng hoc nhiu ch ci hoc ch s, php gn trong ngn ng C l = cn trong Pascal l
:=, v. v. . .
xy dng mt chng trnh dch, h thng phi tm hiu tp t vng ca ngn ng ngun
v phn tch bit c tng loi t vng v cc thuc tnh ca n, nhim v ny thuc modun
phn tch t vng.
C php
C php l thnh phn quan trng nht trong mt ngn ng. Nh chng ta bit trong ngn
ng hnh thc th ngn ng l tp cc cu tha mn vn phm ca ngn ng . V d nh
cu = ch ng + v ng
v ng = ng t + b ng
v.v. . .
Trong ngn ng lp trnh, c php ca n c th hin bi mt b lut c php. B lut ny
dng m t cu trc ca chng trnh, cc cu lnh. Chng ta quan tm n cc cu trc ny
bao gm:
1) cc khai bo
2) biu thc s hc, biu thc logic
3) cc lnh: lnh gn, lnh gi hm, lnh vo ra, . . .
4) cu lnh iu kin if
5) cu lnh lp: for, while
6) chng trnh con (hm v th tc)
Nhim v trc tin l phi bit c b lut c php ca ngn ng m mnh nh xy dng
chng trnh cho n.
Chng trnh phi phn tch chng trnh ngun thnh cc cu trc c php ca ngn ng, t
kim tra tnh ng n v mt ng php ca chng trnh ngun. Vn ny thuc cng
vic ca modun phn tch c php.
Mt vn na l t cc cu trc ny, phi chuyn thnh cc cu trc tng ng ngn
ng ch th no. Nhim v ny l ca phn sinh m.
Ng ngha
Kim tra ng ngha ca chng trnh v mt phn ca mt chng trnh dch. Ng ngha ca
mt ngn ng lp trnh lin quan n:
+ Kiu, phm vi ca hng v bin
Bi ging mn hc: Ngn ng hnh thc v Otomat
38

+ Phn bit v s dng ng tn hng, tn bin, tn hm
Chng trnh dch phi kim tra c tnh ng n trong s dng cc i lng ny. V d
kim tra khng cho gn gi tr cho hng, kim tra tnh ng n trong gn kiu, kim tra phm vi,
kim tra s dng tn nh tn khng c khai bo trng, dng cho gi hm phi l tn c thuc
tnh hm, . . .
Nhim v ny l ca phn phn tch ng ngha.
4.2.2. Cu trc ca chng trnh dch
4.2.2.1. M hnh phn tch - tng hp ca mt trnh bin dch
Chng trnh dch thng bao gm hai qu trnh : phn tch v tng hp
-
-



Hnh 1.2 - M hnh phn tch - tng hp
Trong qu trnh phn tch chng trnh ngun s c phn r thnh mt cu trc phn cp,
thng l dng cy - cy c php (syntax tree) m trong c mi nt l mt ton t v cc
nhnh con l cc ton hng.
V d 1.1: Cy c php cho cu lnh gn position := initial + rate * 60

Bi ging mn hc: Ngn ng hnh thc v Otomat
39



Bi ging mn hc: Ngn ng hnh thc v Otomat
40

4.2.2.2. Mi trng ca trnh bin dch
Ngoi trnh bin dch, chng ta c th dng nhiu chng trnh khc na c th to ra mt
chng trnh ch c th thc thi c (executable). Mt chng trnh ngun c th c phn
thnh cc module v c lu trong cc tp tin ring r. Cng vic tp hp li cc tp tin ny
thng c giao cho mt chng trnh ring bit gi l b tin x l (preprocessor). B tin x
l c th "bung" cc k hiu tt c gi l cc macro thnh cc cu lnh ca ngn ng ngun.
Ngoi ra, chng trnh ch c to ra bi trnh bin dch c th cn phi c x l thm
trc khi chng c th chy c. Thng thng, trnh bin dch ch to ra m lnh hp ng
(assembly code) trnh dch hp ng (assembler) dch thnh dng m my ri c lin kt vi
mt s th tc trong th vin h thng thnh cc m thc thi c trn my.
Thng thng mt chng trnh dch l mt chng trnh trong h thng lin hon gip cho
ngi lp trnh c c mt mi trng hon chnh pht trin cc ng dng ca h. V d nh
mt h thng son tho, mt h thng cho php tm li, phn chnh l mt chng trnh dch sang
ngn ng ch cho php ti v chy chng trnh.
+ b son tho chng trnh ngun.
+ tin x l: x l mt s chc nng ban u to mt chng trnh ngun hon chnh,
v d nh b qua cc ch thch; x l cc macro, kt hp cc tp tin, . . .
+ kim li: bao gm b kim li chng trnh
+ dch ra ngn ng ch: dch ra ngn ng ch nhng ang dng nh v li c, hay
c th dng ngn ng assembly.
+ ti/lin kt: ti vo b nh my c th to thnh mt chng trnh chy c trn
mt cu trc my c th.
Hnh sau trnh by mt qu trnh bin dch in hnh :

Bi ging mn hc: Ngn ng hnh thc v Otomat
41



Hnh 1.3 - Mt trnh x l ngn ng in hnh

4.2.2.3. S phn tch chng trnh ngun
Phn ny gii thiu v cc qu trnh phn tch v cch dng n thng qua mt s ngn ng
nh dng vn bn.
1. Phn tch t vng (Lexical Analysis)
Trong mt trnh bin dch, giai on phn tch t vng s c chng trnh ngun t tri sang
phi (qut nguyn liu - scanning) tch ra thnh cc th t (token).
V d 1.2:
Bi ging mn hc: Ngn ng hnh thc v Otomat
42

Qu trnh phn tch t vng cho cu lnh gn position := initial + rate * 60 s tch thnh cc
token nh sau:

1. Danh biu position
2. K hiu php gn :=
3. Danh biu initial
4. K hiu php cng (+)
5. Danh biu rate
6. K hiu php nhn (*)
7. S 60
Trong qu trnh phn tch t vng cc khong trng (blank) s b b qua.

2. Phn tch c php (Syntax Analysis)
Giai on phn tch c php thc hin cng vic nhm cc th t ca chng trnh ngun
thnh cc ng on vn phm (grammatical phrase), m sau s c trnh bin dch tng hp
ra thnh phm. Thng thng, cc ng on vn phm ny c biu din bng dng cy phn
tch c php (parse tree) vi :
- Ngn ng c c t bi cc lut sinh.
- Phn tch c php da vo lut sinh xy dng cy phn tch c php.
V d 1.3:
Gi s ngn ng c t bi cc lut sinh sau :
Stmt id := expr
expr + expr | expr * expr | id | number
Vi cu nhp: position := initial + rate * 60, cy phn tch c php c xy dng nh sau :

Bi ging mn hc: Ngn ng hnh thc v Otomat
43



Hnh 1.4 - Mt cy phn tch c php

Cu trc phn cp ca mt chng trnh thng c din t bi quy lut qui.
V d 1.4:
1) Danh biu (identifier) l mt biu thc (expr).
2) S (number) l mt biu thc.
3) Nu expr1 v expr2 l cc biu thc th:
expr1 + expr2
expr1 * expr2
(expr)
cng l nhng biu thc.

Cu lnh (statement) cng c th nh ngha qui :

1) Nu id1 l mt danh biu v expr2 l mt biu thc th id1 := expr2 l mt lnh (stmt).
2) Nu expr1 l mt biu thc v stmt2 l mt lnh th
Bi ging mn hc: Ngn ng hnh thc v Otomat
44

while (expr1) do stmt2
If (expr1) then stmt2
u l cc lnh.
Ngi ta dng cc qui tc qui nh trn c t lut sinh (production) cho ngn ng. S
phn chia gia qu trnh phn tch t vng v phn tch c php cng tu theo cng vic thc
hin.

3. Phn tch ng ngha (Semantic Analysis)

Giai on phn tch ng ngha s thc hin vic kim tra xem chng trnh ngun c cha li
v ng ngha hay khng v tp hp thng tin v kiu cho giai on sinh m v sau. Mt phn
quan trng trong giai on phn tch ng ngha l kim tra kiu (type checking) v p chuyn i
kiu.

V d 1.5: Trong biu thc position := initial + rate * 60
Cc danh biu (tn bin) c khai bo l real, 60 l s integer v vy trnh bin dch i s
nguyn 60 thnh s thc 60.0



thnh

Bi ging mn hc: Ngn ng hnh thc v Otomat
45



Hnh 1.5 - Chuyn i kiu trn cy phn tch c php
Bi ging mn hc: Ngn ng hnh thc v Otomat
46

4.2.3. Cu trc tnh (cu trc logic) ca chng trnh dch
d hnh dung, mt trnh bin dch c chia thnh cc giai on, mi giai on chuyn
chng trnh ngun t mt dng biu din ny sang mt dng biu din khc. Mt cch phn r
in hnh trnh bin dch c trnh by trong hnh sau.



Hnh 1.6 - Cc giai on ca mt trnh bin dch

Vic qun l bng k hiu v x l li c thc hin xuyn sut qua tt c cc giai on.

1. Qun l bng k hiu
Mt nhim v quan trng ca trnh bin dch l ghi li cc nh danh c s dng trong
chng trnh ngun v thu thp cc thng tin v cc thuc tnh khc nhau ca mi nh danh.
Nhng thuc tnh ny c th cung cp thng tin v v tr lu tr c cp pht cho mt nh
Bi ging mn hc: Ngn ng hnh thc v Otomat
47

danh, kiu v tm vc ca nh danh, v nu nh danh l tn ca mt th tc th thuc tnh l cc
thng tin v s lng v kiu ca cc i s, phng php truyn i s v kiu tr v ca th tc
nu c.
Bng k hiu (symbol table) l mt cu trc d liu m mi phn t l mt mu tin dng
lu tr mt nh danh, bao gm cc trng lu gi k hiu v cc thuc tnh ca n. Cu trc ny
cho php tm kim, truy xut danh biu mt cch nhanh chng.

Trong qu trnh phn tch t vng, danh biu c tm thy v n c a vo bng k hiu
nhng ni chung cc thuc tnh ca n c th cha xc nh c trong giai on ny.

V d 1.6: Chng hn, mt khai bo trong Pascal c dng
var position, initial, rate : real
th thuc tnh kiu real cha th xc nh khi cc danh biu c xc nh v a vo bng k
hiu. Cc giai on sau nh phn tch ng ngha v sinh m trung gian mi a thm cc
thng tin ny vo v s dng chng. Ni chung giai on sinh m thng a cc thng tin chi
tit v v tr lu tr dnh cho nh danh v s s dng chng khi cn thit.

Bng k hiu



2. X l li
Mi giai on c th gp nhiu li, tuy nhin sau khi pht hin ra li, ty thuc vo trnh
bin dch m c cc cch x l li khc nhau, chng hn :
- Dng v thng bo li khi gp li u tin (Pascal).
- Ghi nhn li v tip tc qu trnh dch (C).
Bi ging mn hc: Ngn ng hnh thc v Otomat
48

Giai on phn tch t vng thng gp li khi cc k t khng th ghp thnh mt token.
Giai on phn tch c php gp li khi cc token khng th kt hp vi nhau theo ng cu
trc ngn ng.
Giai on phn tch ng ngha bo li khi cc ton hng c kiu khng ng yu cu ca php
ton hay cc kt cu khng c ngha i vi thao tc thc hin mc d chng hon ton ng v
mt c php.
3. Cc giai on phn tch
Giai on phn tch t vng: c tng k t gp li thnh token, token c th l mt danh
biu, t kha, mt k hiu,...Chui k t to thnh mt token gi l lexeme - tr t vng ca
token .
V d 1.7: Danh biu rate c token id, tr t vng l rate v danh biu ny s c a vo
bng k hiu nu n cha c trong .

Giai on phn tch c php v phn tch ng ngha: Xy dng cu trc phn cp cho
chui cc token, biu din bi cy c php v kim tra ngn ng theo c php.
V d 1.8: Cy c php v cu trc lu tr cho biu thc

position := initial + rate * 60



Bi ging mn hc: Ngn ng hnh thc v Otomat
49

Hnh 1.7 - Cy c php v cu trc lu tr
4. Sinh m trung gian

Sau khi phn tch ng ngha, mt s trnh bin dch s to ra mt dng biu din trung gian
ca chng trnh ngun. Chng ta c th xem dng biu din ny nh mt chng trnh dnh cho
mt my tru tng. Chng c 2 c tnh quan trng : d sinh v d dch thnh chng trnh
ch.

Dng biu din trung gian c rt nhiu loi. Thng thng, ngi ta s dng dng "m my 3
a ch" (three-address code), tng t nh dng hp ng cho mt my m trong mi v tr b
nh c th ng vai tr nh mt thanh ghi.

M my 3 a ch l mt dy cc lnh lin tip, mi lnh c th c ti a 3 i s.

V d 1.9:
t1 := inttoreal (60)
t2 := id3 * t1
t3 := id2 + t2
id1 := t3
Dng trung gian ny c mt s tnh cht:

- Mi lnh ch cha nhiu nht mt ton t. Do khi to ra lnh ny, trnh bin dch phi xc
nh th t cc php ton, v d * thc hin trc +.
- Trnh bin dch phi to ra mt bin tm lu tr gi tr tnh ton cho mi lnh.
- Mt s lnh c t hn 3 ton hng.

5. Ti u m
Giai on ti u m c gng ci thin m trung gian c th c m my thc hin nhanh
hn. Mt s phng php ti u ha hon ton bnh thng.
V d 1.10:
M trung gian nu trn c th ti u thnh:
t1 := id3 * 60.0
Bi ging mn hc: Ngn ng hnh thc v Otomat
50

id1 := id2 + t1

ti u m, ta thy vic i s nguyn 60 thnh s thc 60.0 c th thc hin mt ln vo
lc bin dch, v vy c th loi b php ton inttoreal. Ngoi ra, t3 ch c dng mt ln
chuyn gi tr cho id1 nn c th gim bt.

C mt khc bit rt ln gia khi lng ti u ho m c cc trnh bin dch khc nhau
thc hin. Trong nhng trnh bin dch gi l "trnh bin dch chuyn ti u", mt phn thi gian
ng k c dnh cho giai on ny. Tuy nhin, cng c nhng phng php ti u gip gim
ng k thi gian chy ca chng trnh ngun m khng lm chm i thi gian dch qu nhiu.
6. Sinh m
Giai on cui cng ca bin dch l sinh m ch, thng l m my hoc m hp ng. Cc
v tr vng nh c chn la cho mi bin c chng trnh s dng. Sau , cc ch th trung
gian c dch ln lt thnh chui cc ch th m my. Vn quyt nh l vic gn cc bin
cho cc thanh ghi.
V d 1.11:
S dng cc thanh ghi (chng hn R1, R2) cho vic sinh m ch nh sau:

MOVF id3, R2
MULF #60.0, R2
MOVF id2, R1
ADDF R2, R1
MOVF R1, id1
Ton hng th nht v th hai ca mi ch th tng ng m t i tng ngun v ch. Ch F
trong mi ch th cho bit ch th ang x l cc s chm ng (floating_point). Du # xc nh
s 60.0 xem nh mt hng s.
Tm li qu trnh thc hin ca mt chng trnh bin dch nh sau:
(1) Phn tch t vng (Lexical Analysis)
(2) Phn tch c php (Syntatic Analysis)
(3) Phn tch ng ngha (Semantic Analysis)
(4) Sinh m trung gian (Intermediate code generation)
(5) Ti u m (Code Optimization)
Bi ging mn hc: Ngn ng hnh thc v Otomat
51

(6) Sinh m ch (Code generation)
(7) Qun l bng k hiu
Bi ging mn hc: Ngn ng hnh thc v Otomat
52


Hnh 1.8 - Minh ha cc giai on bin dch mt biu thc
Bi ging mn hc: Ngn ng hnh thc v Otomat
53

4.2.4. Cu trc ng (cu trc theo thi gian) ca chng trnh dch
Cc giai on m chng ta cp trn l thc hin theo trnh t logic ca mt trnh bin
dch. Nhng trong thc t, ci t cc hot ng ca nhiu hn mt giai on c th c nhm
li vi nhau. Thng thng chng c nhm thnh hai nhm c bn, gi l: k u (Front end)
v k sau (Back end).
K u gm cc giai on: phn tch t vng, phn tch c php, phn tch ng ngha v sinh
m trung gian. K sau gm cc giai on ti u m trung gian v sinh m ch. Bng thit k ny,
i vi cc ngn ng ngun, chng ta ch cn quan tm n vic sinh ra m trung gian m khng
cn bit m my ch ca n l g. iu ny lm cho cng vic n gin, khng ph thuc vo
my ch. Cn giai on sau th cng tr nn n gin hn v ngn ng trung gian thng th gn
vi m my. V n cn th hin u im khi chng ta xy dng nhiu cp ngn ng. V d c n
ngn ng ngun, mun xy dng chng trnh dch cho n ngn ng ny sang m ngn ng ch
th chng ta cn n*m chng trnh dch; cn nu chng ta xy dng theo kin trc front end v
back end th chng ta ch cn n+m chng trnh dch.


V d:

Pascal
C
Java
Byte code
MIPS SPARC PowerPC
n
ngn
ng
ngun
Ngn
ng
trung
gian
m
ngn
ng
ch
Bi ging mn hc: Ngn ng hnh thc v Otomat
54

1. K u (Front end)
K u bao gm cc giai on hoc cc phn giai on ph thuc nhiu vo ngn ng ngun
v hu nh c lp vi my ch. Thng thng, n cha cc giai on sau: Phn tch t vng,
Phn tch c php, Phn tch ng ngha v Sinh m trung gian. Mt phn ca cng vic ti u ha
m cng c thc hin k u.
Front end cng bao gm c vic x l li xut hin trong tng giai on.
2. K sau (Back end)
K sau bao gm mt s phn no ca trnh bin dch ph thuc vo my ch v ni chung
cc phn ny khng ph thuc vo ngn ng ngun m l ngn ng trung gian. Trong k sau,
chng ta gp mt s vn ti u ho m, pht sinh m ch cng vi vic x l li v cc thao
tc trn bng k hiu.
3. Thit k duyt mt lt v nhiu lt
Cu trc ng ca chng trnh dch dch (hay cu trc theo thi gian) cho bit quan h gia
cc phn khi n hot ng. Cc giai on ca chng trnh dch (phn tch t vng, phn tch c
php, phn tch ng ngha, ti u, sinh m) c th hot ng theo hai cch: ln lt hay ng
thi.
Mt s giai on bin dch thng c ci t bng mt lt (pass) duy nht bao gm vic
c mt file d liu vo, ri phn tch v cho kt qu ra mt file ch. Ngi ta hay nhm nhiu
giai on vo mt lt v hot ng ca cc giai on ny an xen ln nhau. V d nh cc giai
on phn tch t vng, phn tch c php, phn tch ng ngha v sinh m trung gian c th c
nhm li thnh mt lt. Khi
dng t t sau giai on phn tch
c th c dch trc tip thnh m
trung gian.
y chng ta xem xt hai
thit k ca mt chng trnh.
Th nht l thit k duyt mt
lt. Trong thit k ny mt s
thnh phn ca chng trnh c
thc hin ng thi. B phn tch
c php ng vai tr trung tm, n
s gi b phn tch t vng khi n
Sinh m trung gian
Ti u m
Sinh m

Chng trnh ngun
Phn tch
c php
Phn tch
t vng
Phn tch
ng ngha
Chng trnh ch
Bi ging mn hc: Ngn ng hnh thc v Otomat
55

cn mt t t tip theo v n gi b phn tch ng ngha khi n mun chuyn cho mt cu trc c
php c phn tch. B phn tch ng ngha li a cu trc sang phn sinh m trung gian
sinh ra cc m trong mt ngn ng trung gian ri a vo b ti u v sinh m.
Trong cu trc duyt nhiu lt, cc thnh phn trong chng trnh c thc hin ln lt
v c lp vi nhau. Qua mi mt phn, kt qu s c lu li v lm u vo cho bc tip
theo.

Sau y l S thit k duyt nhiu lt
Ngi ta ch mun c mt s t lt bi v mi lt u mt thi
gian c v ghi ra tp tin trung gian. Ngc li nu chng ta gom qu
nhiu giai on vo trong mt lt th c th s phi duy tr ton b
chng trnh trong b nh, bi v mt giai on c th cn thng tin
theo mt th t khc vi th t n c to ra. Dng biu din trung
gian ca chng trnh c th ln hn nhiu so vi chng trnh ngun
hoc chng trnh ch, v th s gp vn v b nh lu tr.
i vi mt s giai on, nhm chng vo mt lt lm ny sinh
mt s vn . Chng hn cc ngn ng nh PL/1, Algol 68 hay Foxpro
cho php cc bin c dng trc khi khai bo. Chng ta khng th to
ra m ch cho mt kt cu nu khng bit c kiu cc bin c mt
trong kt cu . Tng t phn ln cc ngn ng lp trnh u cho
php dng lnh goto vi mt nhn khai bo sau. Chng ta khng th xc
nh c a ch ch ca mt lnh nhy nh th cho n khi chng ta
thy c m ngun trong on v m ch c sinh ra. Trong
nhng trng hp nh th ny, chng ta c th dng k thut in sau
(backpatching): dnh mt ch trng cho cc thng tin ang thiu, v
in vo khong ny khi c c thng tin .
Nu so snh gia hai thit k ny th thit k duyt nhiu lt n
gin hn v mt logic thc hin v c thc hin ht giai on ny li n
giai on khc. Tuy nhin chng trnh s chy chm hn nhiu ln v
phi truy xut li kt qu ca cc giai on trc t thit b lu tr
ngoi.
Trong gio trnh ny chng ta nghin cu cc giai on ca mt
Phn tch t vng
Phn tch c php
Phn tch ng ngha
Sinh m trung gian
Ti u m

Sinh m ch

m ch

M ngun

Bi ging mn hc: Ngn ng hnh thc v Otomat
56

chng trnh dch mt cch ring r nhng theo thit k duyt mt lt.
4. Gi

i thi u ngn ng

PL/0
Ngn ng PL/0 l mt ngn ng lp trnh nh, cc cu lnh ca n ta nh ngn ng lp trnh
Pascal. N thng c s dng minh ha cch xy dng mt chng trnh dch. Mc d rt
n gin, nhng ngn ng PL/0 cha nhng nt in hnh ca ngn ng bc cao, n gin v
thch hp vic tm hiu mt ngn ng lp trnh bc cao.
V kiu d liu th PL/0 ch c kiu d liu nguyn
V cc cu lnh th PL/0 cha hu ht cc cu lnh c bn: cu lnh gn, cu lnh iu kin
IF, cu lnh lp WHILE, cc ton t s hc. N khng c cu lnh vo/ra.
Ngn ng PL/0 C cu trc khi, th hin kh y cc khi nim v nh ngha chng
trnh con. N cng cho php xy dng mt chng trnh con qui.
V d v mt chng trnh vit trong ngn ng PL/0:

Const m:=7, n:=82;
Var x, y, z, q, r;
Procedure Multiply;
Var a, b;
Begin
a := b; b := y; z := 0;
while b>0 do
begin
if b=a then z := z+a;
a := 2*a; b := b/2;
end;
End;

Procedure Divide;
Var w;
Begin
r := x; q := 0; w := y;
while w<=r do w := 2*w;
while w>y do
begin
q := 2*q; w := w/2;
if w<=z then
begin
r:=r-w; q:=q+1;
end;
end;
End;
Begin
x:=m; y:=n; call multiply;
x:=25; y:=0; call Divide;
End.

Bi ging mn hc: Ngn ng hnh thc v Otomat
57

Vn phm PL/0 c cho di dng cc lut sn xut nh sau:

program -> block .
block -> { CONST idetifier := number ( , identifier := number )* ; }
{ VAR identifier ( , identifier ) * ; }
{ ( PROCEDURE identifier ; block ; ) * }
statement
statement -> identifier := expression
| CALL identifier
| BEGIN statement ( ; statement ) * END
| IF condition THEN statement
| WHILE condition DO statement
|
expression -> fragment ( ( + | - | * | / ) fragment )*
fragment -> identifier
| number
| ( + | - ) fragment
| ( expression )
condition -> ODD expression
| expression ( = | <> | < | <= | > | >= ) expression

Ngn ng

PL/0 s c s dng thc hnh minh ha cc bc xy dng mt chng trnh


dch hon chnh trong ti liu ny . Vi c na

y se

giu

p chu

ng co

c s ti

m hi u cu th va

su s c
hn v vi c xy d ng chng tri

nh di ch cho m t ngn ng

hoa

n chi

nh.
Nhim v hc chng trnh dch
+ xy dng b phn tch t vng
+ xy dng b phn tch c php
+ xy dng b phn tch ng ngha
+ xy dng b sinh m trung gian
+ xy dng b sinh m my o
+ chng trnh thng dch chy my o
+ chng trnh qun l bng k hiu
Bi ging mn hc: Ngn ng hnh thc v Otomat
58

Chng ta s xy dng cc phn vic ny trn mt ngn ng c th l ngn ng PL/0.
c thm Cc th h ngn ng lp trnh
Cc chng trnh dch u tin xut hin vo nhng nm u thp k 50. Kh c th ch ra
thi im chnh xc ca s kin v c vi nhm c lp vi nhau cng nghin cu v thc
hin cng vic ny.
Cc th h u tin
Trc khi my tnh c th thc hin mt nhim v, n cn phi c lp trnh hot ng
bng cch t cc thut ton, biu thc trong ngn ng my vo b nh chnh. Ngun gc ca
vic c qu trnh lp trnh ny l do c cc nhu cu a dng ngi lp trnh mong mun din t
c tt c cc thut ton bng ngn ng my. Phng php ny cn phi c ci tin ngoi
nhim v sn sng cho thit k thut ton cn gip ngi lp trnh trnh hay pht hin v nh v
c cc li v gip cha li trc khi cng vic c hon thnh.
Bc u tin nhm loi b cc kh khn ny t qu trnh lp trnh l vt b vic dng cc
con s bun t v d gy li dng biu din cc m php ton v cc ton t c trong ngn
ng my. Ch n gin bng cch chn cc tn m t cho cc b nh v cc thanh ghi biu
din cc m php ton, ngi lp trnh c th tng c rt nhiu tnh c c ca mt chui
cc lnh. V d, chng ta hy xem mt th tc vit bng m my c nhim v cng ni dung ca
cc nh 6C v 6D li vi nhau v t kt qu vo 6E. Cc lnh thc hin cng vic ny vit
trong m 16 nh sau:
156C
166D
5056
306E
C000
Nu by gi chng ta gn mt ci tn PRICE (gi tin) cho v tr 6C, TAX (thu) cho 6D v
TOTAL (tng s) cho 6E, v chng ta c th biu din cng th tc ny nh di y s dng k
thut gi l t k hiu gi nh;
LD R5, PRICE
LD R6, TAX
ADDI R0, R5 R6
ST R0, TOTAL
HLT
Bi ging mn hc: Ngn ng hnh thc v Otomat
59

a s chng ta s cng nhn l dng th hai d vn cn kh, th vic thc hin cng vic biu
din mc ch v ngha ca th tc tt hn nhiu dng u.
Khi k thut ny ln u tin c cng b, ngi lp trnh dng b k hiu ny thit k
chng trnh gc trn giy v sau s dch n ra dng m my. Vic ny cng khng mt nhiu
thi gian lm do vic chuyn i thc hin tng i my mc. H qu l vic dng cc k hiu
ny dn n vic hnh thc ha n thnh mt ngn ng lp trnh gi l ngn ng Assembly, v
mt chng trnh gi l Assembler dng dch t ng cc chng trnh khc vit trong ngn
ng Assembly thnh ngn ng my tng ng. Chng trnh ny c gi l Assembler (trnh
dch hp ng) do nhim v ca n l tng hp thnh cc lnh my bng cch dch cc k hiu gi
nh v cc tn.
Ngy nay Assembler tr thnh mt chng trnh tin ch thng thng trong hu ht cc my
tnh. Vi nhng h thng nh vy, ngi lp trnh c th g mt chng trnh trong dng k hiu
gi nh nh cc b son tho ca h thng, ri yu cu h thng dng Assembler dch chng
trnh v lu thnh tp m sau c th dng chy c.
Nh vy cc ngn ng Assembly c pht trin u tin, chng xut hin nh l mt
bc tin khng l trn con ng tm kim cc mi trng lp trnh tt hn. Trong thc t, c
nhiu nghin cu v chng biu din mt ngn ng lp trnh mi v ton din. Do , cc
ngn ng Assembly c coi l cc ngn ng th h th hai, cn ngn ng th h u tin chnh
l bn thn cc ngn ng my.
Mc d ngn ng th h th hai ny c rt nhiu u im so vi ngn ng my, chng vn
cn qu vn tt. Ngn ng Assembly v nguyn tc cng ging nh ngn ng my tng ng. S
khc nhau n gin ch l c php dng biu din chng. S ging nhau gia ngn ng
assembly v ngn ng my cn dn n vic ngn ng Assembly ph thuc vo tng loi my c
th. Cc lnh dng trong chng trnh ch l biu din cc thuc tnh ca my. Mt khc, mt
chng trnh vit trong ngn ng assembly khng d chuyn sang mt loi my khc v thng
phi vit li cho thch ng vi cc thanh ghi v tp lnh ca my mi.
Mt nhc im na ca ngn ng assembly l mt ngi lp trnh, mc d khng buc phi
m cc lnh dng tng bit, th thng b bt phi ngh n cc chi tit, cc thnh phn nh ny,
khng c tp trung vo vic tm gii php tt hn. Tnh cnh ny cng ging nh thit k mt
ngi nh m phi ch n xi mng, vi va, gch ngi, inh, Tuy qu trnh thit k mt
ngi nh t nhng thnh phn nh nh th cng thc hin c, nhng vic thit k s n gin
i rt nhiu nu chng ta suy ngh bt u t cc phng, nn, ca s, mi.
Bi ging mn hc: Ngn ng hnh thc v Otomat
60

Nh vy nguyn l thit k da trn cc phn t nh i ln khng phi l nguyn l thch hp
trong vic thit k. Qu trnh thit k tt hn l dng cc nguyn l mc cao hn, mi nguyn
l ny biu din mt khi nim lin quan vi cc thuc tnh chnh ca sn phm. Mi khi mt
thit k c hon tt, cc thit k gc c th c dch sang cc khi nim mc thp hn, lin
quan n vic thc hin, ging mt nh xy dng cui cng s chuyn thit k trn giy sang chi
tit cc vt liu xy dng.
Theo trit l ny, cc nh khoa hc my tnh bt u pht trin cc ngn ng lp trnh tt hn
cho vic vit phn mm so vi cc ngn ng lp trnh bc thp assembly. Kt qu l cc ngn
ng th h th ba ra i, khc vi cc th h trc ch chng va l ngn ng mc cao,
li va c lp vi my.
Ni chung, phng php ca cc ngn ng lp trnh th h th ba ny l nhn bit b cc
nguyn l bc cao cho vic pht trin phn mm. Mi mt nguyn l ny c thit k sao cho
n c th thc hin nh l mt chui cc nguyn l thp c trong ngn ng my. V d, cu lnh:
assign Total the value Price plus Tax
hoc Total: =Price + Tax
cho thy mt hnh ng mc cao khng cn quan tm n vic mt my tnh c th phi
thc hin n nh th no.
Cc pht trin gn y
Ni chung, thut ng ngn ng th h th t c dng trong mt s sn phm phn mm m
c cho php ngi dng t bin i (ty bin) phn mm ca h m khng cn c chuyn mn.
Ngi lp trnh trong cc ngn ng nh vy thng c yu cu chn t nhng g hin trn mn
hnh dng cu hoc biu tng. Nhng sn phm phn mm bao gm c bng tnh gip duy tr
cc bng d liu dng cc bn ghi k ton, h CSDI gip duy tr v ly li thng tin, cc phn
mm ha gip pht trin cc ha, th, nh cc b x l vn bn mnh cho php cc ti
liu c th kt hp, sp xp li, v i dng. Thm na, cc phn mm ny nhiu khi li c b
li to nn cc h thng tng th. Vi nhng h thng nh vy, mt nh kinh t c th kin trc
nn v bin i cc m hnh kinh t, phn tch nhng thay i nh hng khc nhau c th c
trong nn kinh t ni chung hoc trong mt lnh vc kinh doanh c th no , v a ra kt qu
dng mt ti liu vit vi cc hnh ha, lc lm cc phng tin tr gip trc quan. Mt
ngi qun l doanh nghip nh c th ty bin cng sn phm ny pht trin mt h thng
cho vic duy tr kho v tm ra cc nh hng ca cc mc lu chuyn thp no R rng l
Bi ging mn hc: Ngn ng hnh thc v Otomat
61

nu ta phi vit cc chng trnh lm tt c cc ty bin ny th u l nhng chng trnh
ln.
Nhng h thng ny c coi l thay th cho cc ngn ng lp trnh do mi trng lp trnh
ca chng gn gi vi ng dng hn cc mi trng m cc ngn ng th h th ba cung cp. V
d, thay cho vic m t cc thng tin c biu din trong my nh th no, mt bng d liu c
th hin th trn mn hnh my tnh ra lm sao, hoc c h thng c cp nht thng tin nh th
no, th ngi lp trnh dng cc phn mm th h th t ch cn m t cc mc d liu s xut
hin trn bng tnh v chng quan h vi nhau nh th no. Do vy, ngi dng c th ty bin
v dng bng tnh m khng cn quan tm (hoc hiu) v cc chi tit lin quan n cc k thut
ang c s dng.
Thut ng ngn ng th h th nm c dng cho khi nim lp trnh m t, vi vic nhn
mnh phng php c bit c bit nh lp trnh logic. T tng ny thng minh hn cc t
tng trc y. n gi chng ta s ch rng t tng lp trnh khai bo cho php ngi dng
my tnh gii cc bi tan m ch cn quan tm n l bi ton g ch khng phi l n c
gii nh th no. Quan im ny c th l thi qu i vi bn. Ti sao chng ta li hy vng gii
c mt bi ton m khng cn phi quan tm n cch gii n nh th no. Cu tr li l chng
ta khng gii bi ton ny m my tnh gii h. Vi phng php ny, nhim v ca chng ta
n thun ch l khai bo v bi ton, trong khi my tnh phi thc hin nhim v tm li gii
cho n.
T t tng ca th h ngn ng lp trnh th nm, ta thy nu vn c c pht trin ln
nh vy, th cho n mt lc no my tnh s hiu c trc tip ngn ng t nhin ca con
ngi.

Truyn thng gia ngi v my bng
ngn ng my, trong con ngi phi m t
chi tit mi bc li gii
Truyn thng gia ngi v my bng
ngn ng t nhin ca con ngi, trong
my s t sinh ra ton b li gii

4.2.5. V tr ca chng trnh dch trong h thng dch
Trong thc t, chng trnh dch thng c dng trong mt h thng lin hon nhiu chc
nng, to ra mt mi trng chng trnh dch hon chnh.
4.3. S cn thit phi nghin cu chng trnh dch
Vic nghin cu chng trnh dch s gip chng ta:
Bi ging mn hc: Ngn ng hnh thc v Otomat
62

- Nm vng cc nguyn l ngn ng lp trnh v cng c quan trng nht ca cc nh tin hc,
l chng trnh dch. Trn c s hiu su c tng ngn ng lp trnh, nm c im mnh,
im yu ca tng ngn ng, t chn c ngn ng ph hp vi n ca mnh.
- Bit la chn chng trnh dch thch hp ca cng mt ngn ng lp trnh.
- Hiu rx cc la chn trong cc chng trnh dch, t ty chn ti u cho cng vic cn thc
hin
- Nng cao trnh tay ngh, ci thin k nng v hiu bit v lp trnh.
- Vn dng c hiu qu vo cc cng vic c th, c th t mnh xy dng c mt chng trnh
dch theo yu cu.
Dng cc kin thc ca mn chng trnh dch vo cc ng dng khc.
- p dng cc kin thc hc v chng trnh dch vo cc ngnh ngh khc nh x l ngn
ng t nhin.
4.4. B phn tch c php.
Phn tch c php tch chng trnh ngun thnh cc phn theo vn phm v biu din cu trc
ny bng mt cy (gi l cy phn tch), hoc theo mt cu trc tng ng vi cy. y l
bc quan trng nht ca ton b qu trnh dch.

BI TP
1. Th no l mt chng trnh dch
2. So snh h thng bin dch v thng dch
3. So snh thit k duyt mt lt v nhiu lt
4. u im ca kin trc k trc v k sau
5. Tm hiu ngn ng HTML v t t v c php


Bi ging mn hc: Ngn ng hnh thc v Otomat
63

MT S THI MU

s 1.
Bi 1: Cho bng ch ci ={a,b,c}
L1={xe
*
| x cha t con bc v kt thc bi l k hiu a}
a) Xy dng ngun sinh ngn ng L1.
b) Xy dng vn phm tng ng vi ngun
Bi 2: Cho bng ch ci ={k,m,n}
L2={xe
*
| x cha t con kmn}
a) Xy dng vn phm sinh ngn ng L2.
b) Xy dng Otomat hu hn n nh tng ng vi ngun.
c) Xy dng vn phm sinh ngn ng soi gng vi ngn ng L2.

s 2.
Bi 1: Cho bng ch ci ={a,b,c}
L1={xe
*
| x bt u bi l b v cha t con ca}
a) Xy dng ngun sinh ngn ng L1.
b) Xy dng Otomat n nh, y tng ng vi ngun
Bi 2: Cho bng ch ci ={m,n,p}
L2={xe
*
| x cha t con mn}
a) Xy dng vn phm G sinh ngn ng L2.
b) Chuyn vn phm G v dng chun Chomsky.
c) Xy dng cy dn xut sinh t o=pmnnp t vn phm chun Chomsky.

s 3.
Bi 1: Cho bng ch ci ={m,n,p}
L1={xe
*
| x cha ng 3 k hiu n, cc k hiu m,p l bt k}
a) Xy dng ngun sinh ngn ng L1.
b) Xy dng Otomat tng ng vi ngun
Bi 2: Cho bng ch ci ={a,b,c}
L2={xe
*
| x bt u bi a v c di l}
a) Xy dng ngun I sinh ngn ng L2.
b) Xy dng Otomat hu hn tng ng vi ngun.
c) Xy dng ngun soi gng vi ngun I.


Bi ging mn hc: Ngn ng hnh thc v Otomat
64

TI LI U THAM KHA O

- [1] Nguyn Vn Ba, Ngn ng hnh thc, Trng i hc Bch khoa H ni, 1997
- [2] Phan nh Diu, L thuyt otomat v thut ton, Nh xut bn i hc v Trung
hc Chuyn nghip, 1971
- [3] c Gio, ng Huy Run, Ngn ng hnh thc, Nh xut bn KHKT, 1991
- [4] Phm Hng Nguyn, Gio trnh chng trnh dch, H KHTN HN
- [5] Nguyn Vn Ba, Phn tch c php, H Bch khoa HN