Author
clux
View
130
Download
2
Embed Size (px)
Hc vin cng ngh bu chnh-Vin thngKhoa cng ngh thng tin
Bi ging
Nhp mn logic
Ngi bin son: TSKH Nguyn Minh Hi H ni 2010
Mc lc
Li ni u.3 Gii thiu mn hc 3 Php quy np. 7 Logic mnh ..11 Logic v t31 Logic tnh thi 59 Ti liu tham kho64
1. Li ni uGio trnh ny dnh cho nhng ngi lm khoa hc my tnh c quan tm n Logic. Gio trnh ny khng i hi ngi c cn c nhng kin thc c bit ngoi nhng khi nim c bn v quan h v sp th t. Gio trnh c th s dng ging dy cho cc sinh vin ngnh cng ngh thng tin ca cc trng i hc.
2. Gii thiu mn hc 2.1. Gii thiuMc d logic c nghin cu v pht trin t thi Aistotle v Megara (430-360 trc Cng nguyn), nhng ln u tin logic c trnh by di dng mt ngn ng hnh thc hon ton vo cui th k 19. C nhiu nh ton hc nh Leibliz, Boole ng gp cho vic hnh thc ha logic nhng ngi t nn tng cho vic ny l Gottfried Frege khi ng a ra tng v hnh thc ha (formalisation) v din gii (deduction). Khi nin din gii c bit th v i vi khoa hc my tnh v xut pht t vic t ng ha cc qu trnh lp lun c nghin cu. Vic pht trin logic ton hin i din ra cng vi s khng hang su sc trong ton hc: Cui th k 19 sang u th k 20, vic tin ha L thuyt tp hp v L thuyt s tr thnh tiu im ca nghin cu ton hc v trong cc nm 1910-1013 Whitehead v Rusell cng b cng trnh Principia Mathematica, mt n lc hnh thc ha ton b ton hc trn c s logic hnh thc do Frege a ra. Vic hnh thc ha ny cho php trnh c mt s antinomies c tranh lun vo thi . Tuy nhin vo nm 1931 Kurt Goedel chng minh trong inh l ni ting ca ng v tnh khng y rng mi cch tip cn hnh thc ha s hc l khng y . Rt quan trng khi nhn xt rng ti thi k nn tng ca khoa hc my tnh cng c t ra: Alan Turing cng b cng trnh ca mnh v tnh ton c (computability) v m hnh my l thuyt mang tn my Turing, Alonso Church xy dng -calculus v Stephen Kleene pht trin nn tng ca l thuyt quy (recursion theory). Phn cn li ca chng ny chng ta s tm hiu vic s dng logic trong khoa hc my tnh.
2.2. Lp trnh (Programming)Lch s pht trin x hi nhng nm gn y cho thy cc h thng c my tnh ha thc s tr thnh c s cho nn cng ngh hin i. Phn mm xut hin trong hu ht cc thit b ca mt ngi nh hin i, trong t, my bay, v kh V vy khng cn i su vo chi tit, ngi ta cng thy ngay rng i vi hu ht cc ng dng tnh ng n, an ton v bn vng ca hnh vi l i hi bt buc i vi h thng. Ngi ta tha nhn mt cch rng ri rng ch khi p dng nhng phng php hnh thc trong ton b
qu trnh xy dng phn mm th mi c th bo m c iu ny. Sau y chng ta s m t mt cch ngn gn nhng cng vic m vic s dng logic t ra cc k c ch.
2.3. Abstract Datatypes Kiu d liu tru tng nh ngha kiu d liu v a ra ci t hiu qu ca n th khi nim nh ngha kiu d liu tru tng ng vai tr trung tm. tng chnh l xc nh cc tnh cht tru tng ca kiu d liu thay v vic a ra nhng th hin c th ca d liu. Mt v d n gin v tm thng nht l nh ngha ca stack: Gi s l mt bng ch ci. nh ngha mt stack S trn chng ta gii thit clear l mt hm khng ngi v xc nh cc tnh cht sau y ca stack:
T y chng ta c cc hm clear, push v pop to nn stack v mt v t empty. Tip theo chng ta cn nhng tnh cht sau i vi php t push:
V chng ta cn phi a ra cc tnh cht lin quan n t hp ca cc hm:
Cng thc trn ch ra k vng ca chng ta v cc tnh cht m cc stack cn c. N khng ch ra cch ci t kiu d liu ny nh th no. Thay vo c t ny c mc ch a ra cc vn khc cn gii quyt. V d c t ny c ng n khng? Tc l liu c tn ti mt tp S vi cc ton t nh trn cc tin l tha mn?
c t ny c y khng? Tc l liu cc tin c ko theo tt c cc tnh cht m chng ta gi thit mt cch trc cm mt stack cn c? Liu c nhng tp hp S khng p ng c k vng ca chng ta?
Ngi c hon ton c th nhn thy rng cc tin khng th hin iu g khc ngai vic chng l cc cng thc trong logic v t, tc l tt c cc bin logic nh x hoc s cng vi cc lng t v c s dng. Hai cu hi trn v tnh ng v tnh chnh l nhng ch trung tm i vi vic thit k cc h hnh thc trong logic. Vic chng minh cc tnh cht ny thng l kh v t nhng b li n l tnh u vit r rng ca cc h thng logic khi cho php chng minh chng mt cch hnh thc. Trong phn chnh ca gio trnh ny chng ta s tho lun nhng vn ny mt cch tng minh.
2.4. Pht trin chng trnh (Program Developments)C rt nhiu n lc a ra cc phng php cho php pht trin chng trnh vi cc chng c v s ng n ca n. Chng ta s a ra mt tng tt s lc bng v d. Gi s chng trnh n gin sau ch gn mt vng lp (loop) v chng ta c mt mng cc s nguyn:max := a(1); do i = 2,n if a(i) > max then max := a(i) end
c th hiu iu g xy ra khi chng ta khai thc chng trnh ny th tnh cht bt bin vng lp (loop invariant) sau y rt c ch:
iu ny c ngha rng i vi mi gi tr ca I, tc l trc hay sau mi ln thc hin cu lnh if bn trong cu trc do-loop, cng thc trn u ng. By gi gi s rng vng lp thc hin vng cui cng, tc l gi tr ca I sau khi khai thc ton b vng lp l n, ngi ta c th kt lun rng bin max cha gi tr ln nht ca mng:
Mt vn quan trong khc trong vic pht trin chng trnh l c t chng trnh (specification of programs). a ra c t hnh thc ca chng trnh trn c th s dng cng thc logic sau:
Lu rng trong c t ny S l mt tp hp v khng c mt quyt nh no cho thy S c ci t bng mt mng.
Mt khc logic c th c s dng khng ch ch c t m cn cho c chnh chng trnh. Sau y l chng trnh logic tnh tm gi tr ln nht ca mt danh sch cc gi tr. Cc danh sch c biu din c dng [u.ui] vi u k hiu phn t u tin ca danh sch v ui chi ra phn cn li ca danh sch v nil l danh sch rng.max([m.nil], m)