You are on page 1of 24

Logiko programiranje u Prologu

Logiko programiranje

Logiko programiranje (engl. logic programming) uporaba matematike logike za programiranje Ideja: opisati problem logikim formulama, a rjeavanje prepustiti raunalu "Algorithm = Logic + Control Razliito od dokazivaa teorema (ATP) jer: U program su ugraneni eksplicitni kontrolni mehanizmi Nije podrana puna ekspresivnost logike

DEKLARATIVNI PROGRAMSKI JEZICI


deklarativni jezici opisuju to se izraunava umjesto kako se to izraunava zadaje se specifikacija skupa uvjeta koji definiraju prostor rjeenja pronalaenje rjeenja preputeno je interpreteru osnovne karakteristike: eksplicitno stanje umjesto implicitno stanje nema popratnih efekata (engl. side-effects) programiranje s izrazima funkcijski jezici: izraz=fukcija logiki jezici: izraz=relacija

DEKLARATIVNI JEZICI

isto deklarativni (engl. purely declarative) jezici ne dozvoljavaju popratne efekte Haskell, ... radi praktinosti veina deklarativnih jezika doputa kontrolirane popratne efekte (declarative in style) Lisp, SML, Ocaml, Prolog, ... pogodnosti: formalno koncizni, visoka razina apstrakcije laka formalna verifikacija manja mogunost pogreke nedostaci: neuinkovitost neke strukture/funkcije iziskuju popratne efekte (npr.?)

PROLOG

Prolog = Programming in Logic deklarativni logiki programski jezik 1972.: Alan Colmerauer, Robert Kowalski, Philippe Roussel originalno razvijen za NLP fundamentalni koncepti: rekurzija unifikacija postupak vraanja (backtracking) nije isto deklarativan: "Algorithm = Logic + Control (A B) C (B A) C

HORNOVE FORMULE

Programi u Prologu sainjeni su od slijeda pravila Svako pravilo je FOPL formula u Hornovom obliku: ~P1 P2 P3 ... Pn Q tj. klauzula u kojoj je najvie jedan literal pozitivan Ekvivalentno: (P1 P2 P3 ... Pn) Q Specijalan sluaj za Pi = true: true Q == Q Zakljuivanje nad Hornovim formulama: primjeni modus ponens dokle god je mogue Naalost, ne moe se svaka formula pretvoriti u Hornov oblik .... ~P Q ... niti moemo s MP dokazati svaku logiku posljedicu

You might also like