PROLOG''' Elibrary.Matf.Bg.Ac.Rs Relacijski Jezik
Total Page:16
File Type:pdf, Size:1020Kb
Siaviga B. Praia' 4-er ‘J'( ');lr PROLOG''' elibrary.matf.bg.ac.rs Relacijski jezik Vete&tev frtemeita e leidettalea, taide4 e relid , laege4 e aeteiew" Virtual Library of Faculty Mathematics - University Belgrade Pod/toiaft a Wee, alfo,tetota, PItal4941. Matematieki fakultet, Beograd at NAM Beograd, 1996 g. Profesor dr. SlaviSa B. PreSiC, Matematidki fakultet, Beograd PROLOG Relacijski jezik SADR2AJ Recenzenti Red-dve o knjizi 3 Profesor dr. Zarko Mijajlovid, Matematidki fakultet, Beograd 1. Relacije, formule Profesor dr. Dura PauniC, Institut za matematiku, Novi Sad 4 Beograd Istra2ivad-saradnik mr. Miodrag KapetanoviC, Matematidki institut, 2. Prvo o prolotkom algoritmu 10 2.1 Podetak 10 2.2 Neka opSta pravila 13 2.3 Pravilo o Rezu 18 2.4 Jog neki primeri elibrary.matf.bg.ac.rs Izdavadi 23 Matematidki fakultet, Beograd 3. Zadaci,I Studentski trg 16 36 4. Jos o formulama i Clancima 67 IP„Nauka', Beograd 4.1 Bulevar Revolucije 314/25 Sludaj Lisp-sintakse 67 4.2 tel-faks (011) 421-834 Sludaj Edinburgtke sintakse 84 4.3 Jot o op-izrazima 91 4.4 Gramatike i Prolog 93 Za izdavaCe 5. Drugo o proloSkom algoritmu 102 Profesor dr. Zoran Kadelburg, dekan 5.1 Nikola Dondev, direktor Jedan algoritam ujednadavanja (unifikacije) 102 5.2 Pitanje promenljivih i nepoznatih;Dodelnik;Procedura spajanje 115 5.3 I-ili drveta; Procedure prikljudivanje i pregranjavanje 122 Korice 5.4 Procedure penjanje na vrh i plus_spust 128 Nenad BeoCanin 5.5 Procedura vracanje (backtracking) 134 5.6 JoS o predikatima ADDCL, DELCL odnosno o assert, retract 140 CIP - Katalogizacija u publikaciji 5.7 ZavrSni opis proloSkog algoritma 142 Narodna biblioteka Srbije, Beograd 6. Zadaci,II 144 Virtual Library of Faculty Mathematics - University Belgrade 7. Hornovske formule; deduktivni modeli 519.682 "Prolog" 171 PRESIC, SlaviSa B. 7.1 Uvod iz iskazne logike 171 Prolog : relacijski jezik / SlaviSa 7.2 Pojam formalne teorije 174 B.PreSie. - Beograd: Matematidki fakultet: 7.3 Deduktivan model Hornovskih formula -316 str.; Nauka, 1996 (Beograd: Beopres). (SluCaj iskaznih formula) 176 24 cm. 7.4 Deduktivan model Hornovskih formula (Sludaj predikatskih formula) 180 Tira2 500. -Bibliografija: str. 313.- 7.5 Deduktivan model i Prolog 184 Registar. 8. Baze podataka i Prolog 192 a) Programski jezik "Prolog" 8.1 Uvod 192 ID=44071948 8.2 Svetovi i record-predikati (Arity-prolog) 193 8.3 B-drveta (Arity-prolog) 199 8.4 Hash tabele (Arity-prolog) 204 Stampa: ,Beopres', Beograd. Nptne fajle u Prologu 206 1 SluCaj Arity-Prologa 206 2 siticaj LPA-Prologa 211 :vetovi algoritama 215 218 'regled u Prolog ugradjenih predikata 249 Micro-Prolog 250 Arity-Prolog 270 Red-dve o knjizi LPA-Prolog 295 •atura 313 .S 314 Knjiga se odnosi na tri verzije Prologa: Micro, Arity i LPA- prolog. U njoj se postupno i podrobno izIaZe opgti mehanizam (algoritam) Prologa. elibrary.matf.bg.ac.rs Izlaganje ide od prvih, jednostavnijih primera i odgovarajudih prologkih pravila do potpunog opisa opSteg prologkog algoritma.Taj opis je na jeziku tzv• drveta i sadr2an je u tadki 5. Pored toga, u knjizi ima podrob- nijeg izlaganja o algoritmu unifikacije (deo 5.1 tacke 5) vezi Prologa i matematidke logike (tacka 7) gramatikama na koje se uspegno primenjuje Prolog (deo 4.4 take 4) bazama podataka (taCka 8) pravijenju .exe, .com - fajli u Prologu (taCka 9) U knjizi ima veliki broj regenih zadataka, u kojima se cesto pojavljuju fajle, prozori, (algoritamski) svetovi i dr. Virtual Library of Faculty Mathematics - University Belgrade U taCki 12 je dat veoma iscrpan pregleg predikata ugradenih u Prolog, od- nosno u Micro, Arity, LPA- verziju. Knjiga se mote koristiti i za poCetno udenje Prologa, ali takode i za pro- dubijivanje i logiCko sagledavanje tog jezika. Sledstveno pored raznih neskolskih lica nju mogu koristiti djaci studenti raznih Cujudi i one na tredem stepenu studija. uzrasta, uklju- 3 vni sastavci,"atomi" biti formule 5 . Primer 1.1. Sa LESS se u Micro-prologu oznaCava relacija biti manji.Tako, taCne su ove formule (LESS 1 2), (LESS 5 6), (LESS 2 3.4). U sluCaju LPA, ,.RELACIJE, FORMULE kao i Arity -prologa umesto tih imamo redom ove zapise 1<2, 5<6, 2<3.4. To u stvari, nije zapis tipa (1.1), veC sada Cemo reCi njegovo prosire- buduCi da u njemu pojam nje.Naime, kao i uopste u matematici,ako je n=2 obiCno se umesto rel(a,b) L) Za Prolog se mote reCi da je relacijski jezik, :matematiCke) relacije ima osnovnu ulogu. piSe: a rel b. Primera radi, umesto =(x,y) piSemo x=y i sl. 6 J vezi sa relacijama uopSte, u matematiCkoj logici a i u mnogim verzijama Primer 1.2. Sa EQ se u Micro-prologu oznaCava relacija jednakost .Tako, )rologa, koriste se zapisi oblika,tzv. formule : taCne su formule (EQ 2 2), (EQ 6 6). U LPA, kao i u Arity-prologu te se formule piSu u obliku 2=2, 6=6. : 1.1 ) Primer 1.3. Kao tto znamo sabiranje(brojeva) je operacija, a ne relacija. (Citati : "rel od al,...,an " ill objekti al,...,an su u relaciji rel) Medutim, uvek se operaciji mote pridru2iti odgovarajuCa relacija. Recimo, u vezi sa sabiranjem mo2emo uoCiti ovu relaciju zbir: ;de je rel tzv.ime relacije (reci demo i formule (1.1)), dok su al,...,an ,bjekti na koje se odnosi ta relacija. Odmah istaknimo da demo pored zapi- zbir(x,y,z) a x + y = z ;a (1.1) koristiti i ovakav zapis (to je tzv. lista) : U svakoj verziji Prologa postupa se u duhu te definicije . Tako u Micro- (1.2) (re/ al ... an) prologu imamo ovu definiciju (umesto reel zbir koristi se reC SUM) koji je, u stvari, pozajmljen iz jezika LISP 1 . Inate, zapisi tipa2 (1.2) (1.3) (SUM _X _Y _Z) 04 _X + _Y = _Z Koristeelibrary.matf.bg.ac.rs se u osnovnoj verziji Micro-prologa. 3 Prema toj definiciji imamo primere: (SUM 1 2 3),(SUM 2 -3 -1) i sl.0 (1.3) gapomenimo da je u literaturi veC uobiCajeno da se za zapise tipa (1.1) simboli _X,_Y,_2 mogu biti zamenjeni ma kojim vrednostima (brojevima) - to ka2e da pripadaju tzv. EdinburgSkoj sintaksi. Vedina danaSnjih Prologa ko- su tzv.promenljive. Od sintakse Prologa zavise oznake promenljivih. Tako: risti tu sintaksu.Medutim, osnovna verzija Micro-prologa kao tto smo rekli (1.4) U EdinburgSkoj sintaksi promenljive su ma koje reCi koje poCinju ne- koristi jezik lista, reel Cemo drukCije koristi: LISP-sintaksu. nekim velikim slovom,kao: A,X,Y23,Beograd, a takode kao u (1.3) po- Napomenimo da demo u ovoj knjizi koristiti ove verzije Prologa: Cinju znakom donje podcrte.Takve, sa podcrtom poCinjude, promenljive Micro-prolog, kao predstavnika Lispovske sintakse su jedine vrste promenljivih u sluCaju Micro-prologa. Arity-prolog i LPA-prolog koji koriste EdinburgSku sintaksu U Micro-prologu se mno2enju pristupa sliCno sabiranju. Naime,u tu svrhu Istaknimo, da demo u daljim delovima knjige postupno upoznavati opSti pro- koristi se relacija TIMES : loSki algoritam. Na ovom mestu pomenimo da Ce se tokom algoritma u svakom (TIMES _X _Y _Z) 4.-o- _X * _Y = _Z. koraku pojavljivati 4adunanje vrednosti neke formule, a sama ta vrednost Ce biti taCno,netacno ,znaCi potpuno sliCno kao Sto je to sluCaju matema- Recimo,taCna je formula (TIMES 2 3 6). U vezi sa SUM i TIMES dodajemo i tiCkoj logici (i matematici uopSte).ZnaCi,kratko reCeno u Prologu Ce osno- sledece: kol njihovih formula je dozvoljeno da jedan od argumenata bude promenljiva, koja joS nije dobila vrednost. Tako, "smislene" su formule: (SUM _x 2 3), (SUM 3 2 _y), (SUM 2 _z 15) 1 Lisp je jedan od najstarijih viSih programskih jezika. Nastao je krajem pedesetih godina.Izumeo ga je John Mc Carthy. Lisp se veoma Cesto koristi i ukoliko _x,_y,_z joS nemaju vrednosti, onda sve tri su taCne, i dodatno u oblasti VeStaCke inteligencije. Za razliku od Prologa on je pravi funk- (kao tzv. boCni efekat) te promenljive dobiju redom vrednosti 1, 5, 13. Virtual Library of Faculty Mathematics - University Belgrade cijski jezik. U Lispu osnovnu ulogu imaju liste oblika (1.2), all tads je . Medutim, ako recimo a, _b rel oznaka neke funkcije. Recimo, (+ 2 3) iznosi 5, dok (+ 2 (* 3 4)) iz- nemaju nikakve vrednosti, formula (SUM _a _b 7) je besmislena, i pri po- nosi 14.Inace, reC "lisp" dolazi od engleskih reCi List Processing. Saju njenog raCunanja Prolog prekida algoritam porukom: CONTROL ERROR. 2U stvari,osnovna verzija Micro-prologa koristi joS opStije formule. Blize to su liste oblika (rell_X). ViSe o tome kasnije (vid. (4.1.4)). 3 U naSe vreme veC ima priliCan broj verzija prologa,kao: 5 lstaknimo da se u mnogim proloSkim knjigama sreCe malo drukCije izra2ava- DEC-10 Prolog, CProlog, Quintus, Arity, LPA, Micro-prolog,Prolog - 1, nje. Tako, umesto formula obiCno se ka2e cilj, pa dalje shodno tome se 3, Sigma Prolog, Turbo Prolog ,i dr. Prolog-2,Prolog- umesto recimo raCunamo formulu mehanizam, 0 kale postavljamo cilj 0, i sl. Mi inoCe Medutim, uz neke nevelike razlike svi oni u osnovi imaju isti namerno koristimo "formulsko" izra2avanje, jer tako smo manje udaljeni algoritam (ka2e se i Warren-ovu "matinu", jer David Warren je 1977 isti od pravog, odnosno strogog opisa opSteg proloSkog algoritma. u potpunosti opisao taj algoritam). 6 Ubrzo Ce o njoj biti vise reCi. 4 koristiti redom reCi da, ne (na Ponekad Cemo umesto reCi taCno, netaCno 7 engleskom yes, no). U stvari, takvu promenljivu je bolje zvati nepoznata(vid. Napomenu 2.1.1) 5 4 mote biti ma koja konstantska rec(atom) 8 .Tu se f odnosi na dva sastav- Primer 1.4. UoCimo skup S={1,2,3,4,5,6} i jednu njegovu relaciju p odrede- ka(dve komponente) x i g(Y,23).