06.04.2015 Views

Osnovi programiranja i programski jezici

Osnovi programiranja i programski jezici

Osnovi programiranja i programski jezici

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Za razliku od proceduralnih jezika, prilikom <strong>programiranja</strong> na deskriptivnom jeziku,<br />

programer opisuje ŠTA program treba da radi. U ovom slučaju glavni posao oko<br />

načina rešavanja zadatka treba da uradi interpretator (izvršilac) programa. PROLOG<br />

je jedan od najpoznatijih predstavnika klase deskriptivnih jezika.<br />

OSNOVE PROLOG-A<br />

Teorijsku osnovu PROLOG-a čini predikatski račun prvog reda. Međutim, postupak<br />

nalaženja rešenja u PROLOG-u zasniva se na principu rezolucije za automatsko<br />

dokazivanje teorema koji je pronašao J. Robinson 1965. godine. U stvari, radi se o<br />

jednoj modifikaciji principa rezolucije za tzv. Hornove disjunkte. Naime, osnovni<br />

elementi PROLOG-a nazivaju se Hornovi disjunkti (klauzule) i predstavljaju rečenice<br />

oblika:<br />

AKO c1, c2, … cn ONDA c.<br />

Ovo se može zapisati i ovako:<br />

c ako c1, c2, …, cn.<br />

ili u običajenoj notaciji gde se umesto reči ako koristi spacijalni simbol<br />

:- (tzv. vrat-simbol jer spaja glavu predikata c sa telom: c1, c2, …, cn)<br />

c:-c1, c2, …, cn.<br />

Predikati koji nemaju telo nazivaju se činjenice u PROLOG-u. Predikati bez glave<br />

nazivaju se ciljevi ili upiti.<br />

U opštem slučaju, u matematičkoj logici, pogodbene rečenice mogu imati oblik:<br />

AKO p1, p2, …, pn ONDA c1, c2, …, ck.<br />

Ovde je reč o klauzuli koja ima više glava i takve klauzule se koriste u PROLOG-u.<br />

Ako klauzula ima samo jednu glavu ili nema glavu, tada se naziva Hornova klauzula.<br />

Princip rezolucije u PROLOG-u primenjuje se na Hornove klauzule. Sve činjenice u<br />

PROLOG-u tretiraju se kao apsolutne istine tj. aksiome.<br />

Primena metoda rezolucije sastoji se u usaglašavanju postavljenog cilja (upita) sa<br />

činjenicama, tj. bazom podataka. Naime, ako je postavljen cilj, PROLOG nastoji da<br />

ispuni taj cilj u skladu sa bazom činjenica i pravila. Ako PROLOG u svom nastojanju<br />

uspe da ispuni cilj, daje pozitivan odgovor (‘YES’), u suprotnom negativan (‘NO’).<br />

O PROGRAMIRANJU U PROLOGU<br />

NAČIN REŠAVANJA PROBLEMA U PROLOG-U<br />

U Hornovim klauzulama c1, c2, …, cn su klauzule (rečenice) koje mogu sadržati<br />

konstante i promenljive. Elementi c1, c2, …, cn nazivaju se potciljevi. Glavni cilj<br />

116

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!