You are on page 1of 11

Chng II : Ngn ng v biu din ngn ng

Chng II NGN NG V BIU DIN NGN NG


Ni dung chnh : Chng ny trnh by quan nim hnh thc v ngn ng v khi nim v cc cng c dng m t mt tp hu hn ngn ng c hiu qu - l vn phm v tmt. y l nhng cng c c nh ngha ton hc cht ch c nghin cu k cng v tr thnh mt thnh phn ch yu ca l thuyt ngn ng hnh thc. Mc tiu cn t: Sau chng ny, mi sinh vin cn nm vng cc khi nim sau : Cu trc ngn ng t nhin cng nh ngn ng lp trnh. Cc php ton c bn trn chui, ngn ng Cch thc biu din ngn ng Cch phn loi vn phm theo quy tc ca Noam Chomsky Xc nh cc thnh phn ca mt vn phm. Mi lin quan gia ngn ng v vn phm. 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 Ti liu tham kho : [1] John E. Hopcroft, Jeffrey D.Ullman Introduction to Automata Theory, Languages and Computation Addison Wesley Publishing Company, Inc 1979 (trang 1 trang 12). [2] H Vn Qun Gio trnh l thuyt tmt v ngn ng hnh thc Nh xut bn i hc quc gia Tp. H Ch Minh 2002 (trang 8 trang 18). [3] The Chomsky Hierarchy : http://en.wikipedia.org/wiki/Chomsky_hierarchy

Chng II : Ngn ng v biu din ngn ng

I. TNG QUAN V 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. B ch ci (alphabet)
Mt b ch ci (b k hiu) l mt tp hp khng rng, k hiu l . Cc phn t ca mt b ch ci c gi l cc k hiu (symbol). Th d 2.1: B ch ci Latinh {A, B, C, ... , Z, a, b, c, ... , z} B ch ci Hylp {, , , , } B ch s thp phn {0, 1, 2, ... , 9} B k hiu Moene { . , / , - } B bit nh phn { 0, 1}

1.2. K hiu v chui


Mt k hiu (symbol) l mt thc th tru tng m ta s khng nh ngha c mt cch hnh thc. Chng hn : Cc ch ci (a, b, c, ...) hoc con s (0, 1, 2, ...) l cc k hiu. Mt chui (string) hay t (word) trn b ch ci l mt dy hu hn gm mt s ln hn hay bng khng cc k hiu ca , trong mt k hiu c th xut hin vi ln. Chng hn : . a, b, c l cc k hiu cn abcac l mt t. . , 0, 1011, 00010, ... l cc t trn b ch ci = {0, 1}
10

Chng II : Ngn ng v biu din ngn ng

di ca mt chui w, k hiu |w| l s cc k hiu to thnh chui w. Chng hn: Chui abca c di l 4 , k hiu : |abca | = 4 Chui rng (k hiu ) l chui khng c k hiu no, v vy | | = 0. Chui v c gi l chui con ca w nu v c to bi cc k hiu lin k nhau trong chui w. Chng hn: Chui 10 l chui con ca chui 010001 Tin t ca mt chui l mt chui con bt k nm u chui v hu t ca mt chui l chui con nm cui chui. Tin t v hu t ca mt chui khc hn chnh chui ta gi l tin t v hu t thc s. Chng hn: Chui abc c cc tin t l a, ab, abc v cc hu t l c, bc, abc Chui ni kt (ghp) t hai chui con l mt chui to c bng cch vit chui th nht sau l chui th hai (khng c khong trng gia). Chng hn : Ni kt chui Long v Int l chui LongInt. S t cnh nhau nh vy c s dng nh l mt ton t ni kt. Tc l, nu w v x l hai chui th wx l s ni kt hai chui . Chui rng l n v ca php ni kt, v ta c w = w = w vi mi chui w. Ta vit v0 = ; v1 = v ; v2 = vv ... hay tng qut vi = vvi - 1 vi i > 0. Chui o ngc ca chui w, k hiu wR l chui w c vit theo th t ngc li, ngha l nu w = a1 a2 ... an th wR = an an-1 ... a1. Hin nhin : R =

1.3. Ngn ng (Languages)


Mt ngn ng (hnh thc) L l mt tp hp cc chui ca cc k hiu t mt b ch ci no . Tp hp cha chui rng (k hiu {}) v tp hp rng cng c coi l ngn ng. Ch rng hai ngn ng l khc nhau: ngn ng khng c phn t no trong khi ngn ng {} c mt phn t l chui rng . Tp hp tt c cc chui con k c chui rng trn b ch ci c nh , k hiu l * cng l mt ngn ng. Mi ngn ng trn b ch ci u l tp con ca *. Ch rng * v hn m c vi mi khc , v ta c th lit k tt c cc chui con ca n theo th t di tng dn, khi c cng di th lit k theo th t t in. Ngoi ra tp hp tt c cc chui sinh ra t b ch ci , ngoi tr chui rng , c k hiu l +. D thy:

11

Chng II : Ngn ng v biu din ngn ng


* + = - {}

hay

= + + {}

Th d 2.2 : = {a} th * = {, a, aa, aaa, ...} + = {a, aa, aaa, ...} = {0, 1} th * = {, 0, 1, 00, 01, 10, 11, 000, ...} + = {0, 1, 00, 01, 10, 11, 000, ...}

1.4. Cc php ton trn ngn ng


T cc ngn ng c trc, ta c th thu c cc ngn ng mi nh p dng cc php ton trn ngn ng. Trc ht, v ngn ng l mt tp hp, nn mi php ton trn tp hp nh: hp (union), giao(intersection) v hiu (difference) ... u c th p dng ln cc ngn ng. Ngoi ra, cn c thm mt s php ton thng gp khc nh sau : Php phn b (complement) ca mt ngn ng L trn b ch ci c nh ngha nh sau : * L = -L vi ch khi nim b ca ngn ng c nh ngha da trn * Php ni kt (concatenation) ca hai ngn ng L1 trn b ch ci 1 v L2 trn b ch ci 2 c nh ngha bi : L1L2 = {w1w2 | w1 L1 v w2 L2 } trn b ch ci 1 2 K hiu Li c m rng dng cho php ni kt nhiu ln (cn gi l php ly tha trn chui) trn cng mt tp ngn ng L, tng qut : Li = LLi - 1. Theo nh ngha, ta c mt trng hp c bit : L0 = {}, vi mi ngn ng L. Php bao ng (closure) : Trong nhiu trng hp, ngi ta mun thnh lp mt ngn ng bng cch ni kt cc chui (vi s lng bt k) ly trong mt ngn ng L cho trc, cc php ton nh sau : Bao ng (Kleene) ca ngn ng L, k hiu L* c nh ngha l hp ca mi tp tch trn L :

L =U L
* i =0

Bao ng dng (positive) ca ngn ng L, k hiu L+ c nh ngha l hp ca mi tch dng trn L :

L =U L
+ i =1

12

Chng II : Ngn ng v biu din ngn ng Ch rng : L+ = lL* = L*L L* = L+ {}

Th d 2.3 : Cho ngn ng L = { a, ba } th L2 = { aa, aba, baa, baba, } L3 = { aaa, aaba, abaa, ababa, baaa, baaba, babaa, bababa, } L* = { , a, ba, aa, aba, baa, baba, aaa, aaba, abaa, ababa, baaa, baaba, }

II. VN BIU DIN NGN NG


Nh nh ngha trn, mt ngn ng L trn mt b ch ci l mt tp con ca tp *. Vy vn t ra l i vi mt ngn ng L, lm sao c th ch r cc chui c thuc vo L hay khng ? chnh l vn biu din ngn ng . i vi cc ngn ng hu hn, biu din chng mt cch n gin ta ch cn lit k tt c cc chui thuc vo chng. Chng hn : L1 = {} L2 = { a, ba, aaba, bbbbb } Tuy nhin, trong trng hp cc ngn ng l v hn, ta khng th lit k tt c cc chui thuc ngn ng c m phi tm cho chng mt cch biu din hiu qu khc. Trong nhng trng hp khng phc tp lm, ngi ta thng xc nh cc chui bng cch ch r mt c im ch yu chung cho cc chui . c im ny thng c m t qua mt pht biu hay mt tn t. Chng hn : L3 = { ai i l mt s nguyn t } L4 = { ai bj i j 0 } L5 = { w { a, b}* s a trong w = s b trong w } Song, trong phn ln cc trng hp, ngi ta thng biu din ngn ng mt cch tng qut thng qua mt vn phm hay mt tmt. Vn phm l mt c ch cho php sn sinh ra mi chui ca ngn ng, trong khi tmt li l c ch cho php on nhn mt chui bt k c thuc ngn ng hay khng. V mt hnh thc, c vn phm v tmt u l cc cch biu hin khc nhau ca cng mt quan nim. Th d 2.4 : Cho L l mt ngn ng trn b ch ci = {a, b} c nh ngha nh sau: i) L ii) Nu X L th aXb L iii) Khng cn chui no khc thuc L

13

Chng II : Ngn ng v biu din ngn ng

nh ngha quy trn cho ta mt cch sn sinh ra cc chui thuc ngn ng L nh sau : Do (i) nn ta c chui u tin trong L l . Xem l X th theo (ii) ta li c c chui th hai ab hay ab. p dng lp i lp li quy tc (ii) ta li tm c cc chui: aabb, ri li aaabbb, C nh th c th pht sinh tt c cc chui thuc ngn ng L. Bng cch p dng (mt s hu hn) quy tc pht sinh nh trn, ta c th pht sinh bt k chui no trong ngn ng. D dng nhn thy : L = {ai bi i 0}
Trong gio trnh ny, chng ta s tp trung nghin cu hai dng h pht sinh dng biu din ngn ng, nh ni trn, l vn phm v tmt. Bng cch n nh cc dng khc nhau vo cc quy tc pht sinh, ngi ta cng nh ngha nhiu loi vn phm v tmt khc nhau, t n gin n phc tp, nghin cu cc ngn ng sn sinh hay on nhn bi chng v mi lin quan gia chng vi nhau.

III. VN PHM V S PHN LP 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.

3.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:

14

Chng II : Ngn ng v biu din ngn ng

nh ngha : Vn phm cu trc G l mt h thng gm bn thnh phn xc nh nh sau G (V, T, P, S), trong : . V : tp hp cc bin (variables) hay cc k hiu cha kt thc (non terminal) . T : tp hp cc k hiu kt thc (terminal) (vi V T = ) . P : tp hu hn cc quy tc ng php c gi l cc lut sinh (production), mi lut sinh c biu din di dng , vi , l cc chui (V T)*. . S V: 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 T. Chui cc k hiu kt thc thng c biu din bng cc ch ci Latinh cui bng vit thng (x, y, z, ...). 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. T vn phm, sinh ra c cc cu (t), ta nh ngha khi nim dn xut nh sau : Nu l mt lut sinh th gi l mt dn xut trc tip, c ngha l p dng lut sinh vo chui sinh ra chui . Nu cc chui 1, 2, ...., m * v 1 2, 2 3, ..., m-1 m th ta ni m c th c dn ra t 1 thng qua chui dn xut 1 2, 2 3, ..., m-1 m hay 1 dn xut (gin tip) ra m, vit tt l 1 * m. Ngn ng ca vn phm G (V, T, P, S) l tp hp cc chui k hiu kt thc w T* c sinh ra t k hiu bt u S ca vn phm bi cc lut sinh thuc tp P, k hiu l L(G) : L (G) = {w | w T * v S * w} Mt ngn ng c th c nhiu cch c t, do cng c th c nhiu vn phm khc nhau sinh ra cng mt ngn ng. Hai vn phm sinh ra cng mt ngn ng th gi l tng ng. G1 tng ng G2 L (G1) = L (G2)

3.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 :
15

Chng II : Ngn ng v biu din ngn ng

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 c cc lut sinh dng v tha 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 A vi A l mt bin n v l mt chui cc k hiu (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 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 L2 L1 L0 v cc bao hm thc ny l nghim ngt. Th d 2.5 : 1. Xt vn phm G : V = {S, A}, T = {a, b} v tp P = { S aS S aA A bA Ab} y l vn phm loi 3 (v tp lut sinh c dng tuyn tnh phi). Chng hn, mt dn xut t S c dng : S aS aaS aaaA aaabA aaabbA aaabbbA aaabbbb = a3 b4 Hay vn phm sinh ra ngn ng L(G3) = {a+b+} = {anbm n, m 1 } 2. Xt vn phm G : V = {S}, T = {a, b} v tp P = { S aSb S ab } y l vn phm loi 2. Chng hn, mt dn xut t S c dng : S aSb aaSbb aaaSbbb aaaabbbb = a4b4 Hay vn phm sinh ra ngn ng L(G2) = {anbn n 1} 3. Xt vn phm G : V = {S, B, C}, T = {a, b, c} v tp P = { S aSBC
16

Chng II : Ngn ng v biu din ngn ng

S aBC CB BC aB ab bB bb bC bc cC cc } y l vn phm loi 1. Chng hn, mt dn xut t S c dng : S aSBC aaBCBC aabCBC aabBCC aabbCC aabbcC aabbcc = a2b2c2 Hay vn phm sinh ra ngn ng L(G1) = {anbncn n > 0}.

IV. C CH TMT
4.1. nh ngha tmt
Ngoi cc vn phm, ngi ta cn s dng mt phng tin khc xc nh ngn ng l tmt. tmt, dch ngha l my t ng, c hiu l cc my tru tng c c cu v hot ng rt n gin nhng c kh nng on nhn ngn ng. Vi mt chui bt k, sau mt s bc lm vic, tmt s cho cu tr li chui c thuc ngn ng hay khng. c c qu trnh t ng nh vy, con ngi thng phi lp trnh sn cho n mt l trnh thc hin, v cc my ch cn hot ng theo ng l trnh ny. Mt trong s nhng my t ng ny in hnh mnh nht c th ni chnh l my tnh s ngy nay. Tuy hot ng theo kiu my, song thc cht mi bc lm vic ca tmt l mt s thay th k hiu, ngha l mt bc dn xut nh ni trn. Ni chung, mt m hnh tmt thng bao gm nhng thnh phn ch yu nh sau :

INP

B iu khin

17

Chng II : Ngn ng v biu din ngn ng

OUTPU
Hnh 2.1 - M hnh chung cho mt tmt

Chui nhp cn xc nh s c lu tr trn bng input. Ti mi thi im, ng vi trng thi hin thi, c vo mt k t nhp trn bng input, c th kt hp vi vic xem xt k hiu tng ng trong B nh, B iu khin ca tmt s quyt nh bc chuyn n trng thi k tip. Cc loi tmt tng ng vi tng lp vn phm s c gii thiu ln lt trong nhng chng tip theo.

4.2. Phn loi cc tmt


Da theo hot ng ca tmt, thng thng ngi ta chia tmt thnh hai dng sau: tmt n nh (Deterministic Automata) : L mt tmt m ti mi bc di chuyn ch c xc nh duy nht bi cu hnh hin ti. S duy nht ny th hin tnh n nh, ngha l hm chuyn ca tmt dng ny lun l n tr. tmt khng n nh (Non - deterministic Automata) : L mt tmt m ti mi bc di chuyn, n c mt vi kh nng chn la. S chn la ny th hin tnh khng n nh, ngha l hm chuyn ca tmt dng ny l a tr.

18

B iu BI TP CHNG II

Chng II : Ngn ng v biu din ngn ng

2.1. Chng minh hoc bc b : L+ = L* - {}. 2.2. L+ hay L* c th bng khng ? Khi no th L+ hay L* l hu hn ? 2.3. Hy cho bit cc th t cho php lit k cc phn t ca cc ngn ng sau : a) {a, b}* b) {a}*{b}*{c}* c) {ww {a, b}+ v s a bng s b trong w} 2.4. Mt chui hnh thp c th nh ngha l mt chui c xui hay ngc u nh nhau, hoc cng c th nh ngha nh sau : 1) l chui hnh thp. 2) Nu a l mt k hiu bt k th a l mt chui hnh thp. 3) Nu a l mt k hiu bt k v X l mt chui hnh thp th aXa l mt chui hnh thp. 4) Khng cn chui hnh thp no ngoi cc chui cho t (1) n (3). Hy chng minh quy np rng 2 nh ngha trn l tng ng. 2.5. Cc chui ngoc n cn bng c nh ngha theo 2 cch : Cch 1 : Mt chui w trn b ch ci { ( , ) } l cn bng khi v ch khi : a) w cha cng mt s ')' v '(' b) Mi tin t ca w cha s cc '(' t nht bng s cc ')'. Cch 2 : a) ( l chui ngoc n cn bng b) Nu w l mt chui ngoc n cn bng, th (w) l chui ngoc n cn bng. c) Nu w v x l cc chui ngoc n cn bng, th wx l chui ngoc n cn bng. d) Khng cn chui ngoc n cn bng no khc vi trn. Hy chng minh bng quy np theo di chui rng 2 nh ngha trn l tng ng.

19

You might also like