You are on page 1of 5

Bi tp l thuyt mn Chng trnh dch cho K47 CNTT

Di y l mt s bi tp l thuyt m sinh vin nn lm. I. M U Bi 1. To sao chng ta cn s dng cc ngn ng nhn to? Bi 2. So snh chng trnh dch duyt mt ln v nhiu ln. Bi 3. Ly v d v cc chng trnh bin dch v chng trnh thng dch. II. PHN TCH T VNG

Bi 1. Cho bit b ch ci ca cc ngn ng a) Pascal b) C Bi 2. Phn tch t t cc on chng trnh sau, a ra cc t t v thuc tnh tng ng. a) Pascal function max( i, j: integer ) : integer; {tra ve so lon nhat trong hai so i va j} begin if i>j then max:= i else max:= j end; b) C int max( int i, int j ) /*tra ve so nho nhat trong hai so i va j*/ { return i>j? i: j; } Bi 3. Gi s chng ta cn xy dng mt chng trnh phn tch t vng nhn dng cc loi t t trong ngn ng C bao gm hai loi t t: tn l mt xu bt u bi mt ch ci v theo sau l khng hoc nhiu ch ci, ch s hoc du gch di. s thc c hai phn: phn nguyn v phn thp phn l xu cc ch s v gia hai phn ny l du chm. Hy thc hin: a) Xy dng biu thc chnh qui v th chuyn cho tng loi t t b) Kt hp cc th chuyn thnh th chuyn duy nht

Nguyn Phng Thi BM KHMT

c) Xy dng tmt hu hn n nh cho th chuyn ny Bi 4. * V th chuyn cho: a) Cc ch gii trong ngn ng lp trnh C c cu to bi mt chui c bao quanh bi /* v */. Khng c bt k chui */ no xen vo tr khi n nm trong cp du v . b) Cc chui 0 v 1 khng cha chui con 011. III. PHN TCH TOPDOWN V LL(K) Bi 1. Input v output ca phn tch c php l g? Bi 2. Ti sao cy phn tch nhn c t thut ton phn tch topdown c gi l cy phn tch tri? Bi 3. Cho vn phm G nh sau: E -> ! E E -> E && E E -> ( E ) E -> a Vi E l k hiu khng kt thc v cng l k hiu bt u; ! , &&, a l cc k hiu kt thc. 1) Hi xu vo ! ( a ) && a c thuc ngn ng sinh ra bi vn phm G khng? v sao? 2) Chng t rng vn phm trn l nhp nhng. 3) Vn phm trn c phn tch c bi phng php Topdown khng? ti sao? Bi 4. Cho vn phm dng m t biu thc s hc nh sau: E -> T E E -> + T E | T -> F T T -> * F T | F -> a | ( E ) Vi E, E, T, T, F l cc k hiu khng kt thc, E l k hiu bt u. 1) Hy vit mt dn xut phi nht i vi xu vo a+a*a v v cy phn tch. 2) C s dng phng php phn tch Bottom-up i vi vn phm trn c khng? V sao? 3) Hy vit qu trnh phn tch xu vo a+a bng phng php phn tch Topdown. Bi 5. Cho vn phm G nh sau: S -> A B A -> a A | B -> b B | Trong S, A, B l cc k hiu khng kt thc, S l k hiu bt u v a, b l cc k hiu kt thc.

Nguyn Phng Thi BM KHMT

1) Hy tnh First v Follow ca S, A, B 2) Tnh First ca cc v phi ca cc sn xut 3) Xy dng bng phn tch LL(1) cho vn phm G. Vn phm G c phi l vn phm LL(1) khng? 4) Nu vn phm trn l LL(1). Hy vit qu trnh phn tch LL(1) i vi xu vo aabb Bi 6. * Chng minh rng vn phm qui tri khng th l LL(1). Bi 7. * Chng minh rng vn phm LL(1) khng th nhp nhng. IV. PHN TCH BOTTOM-UP V LR(K)

Bi 1. Ti sao cy phn tch nhn c t thut ton phn tch bottom-up c gi l cy phn tch phi? Bi 2. Cho vn phm: S aABe A Abc | b Bd Hy phn tch cu abbcde bng thut ton bottom-up. Bi 3. Cho vn phm sau vi N, B l cc k hiu khng kt thc, N l k hiu bt u: (1) N -> N B (2) N -> B (3) B -> a (4) B -> b Gi s bit trc bng phn tch LR nh sau: action goto A b $ N B s3 s4 1 2 0 s3 s4 acc 5 1 r2 r2 r2 2 r3 r3 r3 3 r4 r4 r4 4 r1 r1 r1 5 Hy vit qu trnh phn tch LR vi xu vo aaba Bi 4. Cho vn phm sau vi S, A, B l cc k hiu khng kt thc, S l k hiu bt u; a, b l cc k hiu kt thc. S -> AaAb | BbBa A -> B -> 1) Tnh First v Follow ca S, A, B 2) Xy dng bng phn tch LL(1). Vn phm trn c phi l LL(1) khng? Nguyn Phng Thi BM KHMT 3

3) Tnh I0 ca LR(0); tnh action(0,a) v action(0,b). Vn phm trn c phi l vn phm SLR(1) khng? Bi 5. a) Nu nhng im ging nhau v khc nhau ca thut ton phn tch bottom-up v thut ton phn tch LR? (Nu ngn gn, khng trnh by li thut ton) b) Nhng vn phm nh th no th khng phn tch c bng thut ton bottom-up? Ti sao? c) Ti sao lp vn phm LR(k) li rng hn lp vn phm LL(k)? V. BIN DCH DA C PHP

Bi 1. Cho c php iu khin tnh gi tr ca mt s h c s hai nh sau: Lut c php B->0 B->1 B->B1 0 B->B 1 B->0 B->1 Lut ng ngha B.val=0; B.val:=1; B.val:=2*B1.val +0 B.val:=2*B1.val+1 B.val=0; B.val:=1;

Hy xy dng cy phn tch c php i vi xu vo 1010 v thc hin cc lut ng ngha trn cy phn tch ny theo chiu su (ch ra th t cc bc thc hin lut ng ngha). Bi 2. Cho vn phm sau m t mt s khai bo bin trong ngn ng C nh sau: (vi D, T, L l k hiu khng kt thc v D l k hiu bt u). D -> T L L -> id | id , L | id [ num ] | id [num] , L T -> int | float Hy xy dng lc dch trn cc sn xut vn phm y sinh kiu cho cc bin. Xy dng cy phn tch v thc hin cc lut ng ngha theo lc dch trn cy phn tch vi xu vo float a, b[3] tnh kiu ca a v b. Bi 3. Tng t bi 2 nhng thay lc dch bng c php iu khin. VI. PHN TCH NG NGHA

Bi 1. Vit biu thc kiu cho cc kiu sau: a) Mng con tr tr ti s thc, ch s mng t 1 n 100 b) Mng hai chiu vi cc dng c ch s t 0 n 9, ct t 0 n 10. Bi 2. Cho vn phm:

Nguyn Phng Thi BM KHMT

PD;S DD;D D id : T T integer | boolean | array [ num ] of T SS;S S E := E S if E then S E num E id E E mod E EE[E] Trong P l k hiu bt u; P, D, S, T, E l cc k hiu khng kt thc; ;, :, id, integer, boolean, array, num, of, :=, if, then, mod, [, ] l cc k hiu kt thc; integer l kiu nguyn, boolean l kiu logic (ging trong Pascal); id l t t tn, num l t t s nguyn. Bn hy: a) Vit lc dch kim tra kiu cho vn phm trn b) Tnh kiu cho cc biu thc trong on chng trnh sau: a: array[10] of interger; b: boolean; a[0] := b Yu cu bn v cy c php ng vi on chng trnh trn, sau tnh kiu cho cc nt trn cy c php . VII. SINH M TRUNG GIAN

Bi 1. Hy chuyn biu thc s hc a*-(b+c) thnh a) Mt cy c php b) K php hu t c) M ba a ch Bi 2. Chuyn on chng trnh C sau thnh m ba a ch: int i; int a[10]; i = 1; while (i<=10) { a[i] = 0; i = i+1; } VIII. SINH M CH

Nguyn Phng Thi BM KHMT

You might also like