31
Programske paradigme Logiˇ cko programiranje Milena Vujoˇ sevi´ c Janiˇ ci´ c www.matf.bg.ac.rs/~milena Programske paradigme Beograd, 26. novembar, 2015.

Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Embed Size (px)

Citation preview

Page 1: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Programske paradigmeLogicko programiranje

Milena Vujosevic Janicic

www.matf.bg.ac.rs/~milena

Programske paradigmeBeograd, 26. novembar, 2015.

Page 2: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Pregled

1 Logicko programiranje

2 Prolog

3 Literatura i pitanja

Milena Vujosevic Janicic Programske paradigme

Page 3: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

Pregled

1 Logicko programiranjeResavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

2 Prolog

3 Literatura i pitanja

Milena Vujosevic Janicic Programske paradigme

Page 4: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

Proces izracunavanja

Imperativna paradigma: naredbe, sekvenca, selekcija, iteracija ipropratni efektiFunkcionalna paradigma: evaluacija funkcija koriscenjemredukcijaLogicka paradigma: logicke metode (npr metod rezolucije)

Milena Vujosevic Janicic Programske paradigme

Page 5: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

Programske paradigme

Pomenute paradigme se temelje na razlicitim teorijskimmodelima

Formalizam za imperativne jezike — Tjuringova masinaFormalizam za funkcionalne jezike — Lambda racunFormalizam za logicke jezike —

Logika prvog reda

Imperativni jezici imaju svu izrazajnost Tjuringove masine (uzogranicenja memorije i resursa), funkcionalni jezici imaju svuizrazajnost lambda racuna (uz ogranicenja memorije i resursa),ali logicki jezici nemaju svu izrazajnost logike prvog reda.

Milena Vujosevic Janicic Programske paradigme

Page 6: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

Programske paradigme

Pomenute paradigme se temelje na razlicitim teorijskimmodelima

Formalizam za imperativne jezike — Tjuringova masinaFormalizam za funkcionalne jezike — Lambda racunFormalizam za logicke jezike — Logika prvog reda

Imperativni jezici imaju svu izrazajnost Tjuringove masine (uzogranicenja memorije i resursa), funkcionalni jezici imaju svuizrazajnost lambda racuna (uz ogranicenja memorije i resursa),ali logicki jezici nemaju svu izrazajnost logike prvog reda.

Milena Vujosevic Janicic Programske paradigme

Page 7: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

Programske paradigme

Pomenute paradigme se temelje na razlicitim teorijskimmodelima

Formalizam za imperativne jezike — Tjuringova masinaFormalizam za funkcionalne jezike — Lambda racunFormalizam za logicke jezike — Logika prvog reda

Imperativni jezici imaju svu izrazajnost Tjuringove masine (uzogranicenja memorije i resursa), funkcionalni jezici imaju svuizrazajnost lambda racuna (uz ogranicenja memorije i resursa),ali logicki jezici nemaju svu izrazajnost logike prvog reda.

Milena Vujosevic Janicic Programske paradigme

Page 8: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

Resavanje problema

U logickom programiranju, logika se koristi kao deklarаtivnijezik za opisivanje problema, a dokazivac teorema kaomehanizam za resavanje problema.Resavanje problema je podeljeno izmedu programera kojiopisuje problem i dokazivaca teorema koji problem resava.

Milena Vujosevic Janicic Programske paradigme

Page 9: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

Resavanje problema

Sintaksa opisa problema je dosta slicna u jezicima logickeparadigme, ali dokazivac teorema moze da se razlikuje.Najznacajniji predstavnik logicke paradigme je Prolog, koji secesto koristi i kao sinonim za logicku paradigmu.U procesu resavanja problema, Prolog koristi metod rezolucije

Milena Vujosevic Janicic Programske paradigme

Page 10: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

Razvoj logickog programiranja — teorijske osnove

1879. G. Frege - Predikatski racun (sredstvo za analizuformalne strukture cistog misljenja)1915-1936. Gedel, Erban, Skulem, Turing,... Osnovi teorijeizracunljivosti.1965. J.A. Robinson, Metod rezolucije.

Milena Vujosevic Janicic Programske paradigme

Page 11: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

ABSYS

1967. ABSYS — Aberdeen SYStemM. Foster, T. Elkok, Group for Computing Research,University of Aberdeen (UK)Radi sa tvrdenjima (aksiomama) preko kojih se, nakonpostavljanja pitanja, deduktivnim putem generise odgovor.ABSYS je anticipira razne koncepte koji se kasnije koriste ulogickom programiranju.

Milena Vujosevic Janicic Programske paradigme

Page 12: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

Razvoj Prologa

1971. Pod rukovodstvom A. Colmerauer-a u Marselju kreiranQ-System (obrada prirodnih jezika).1972. Q-System preimenovan u PROLOG (PROgramming inLOGic). Saradnja sa Robertom Kovalskim iz Edinburga(automatsko dokazivanje). Implementiran prvi interpretator zaProlog. (Saradnici: Ph. Roussel, R. Pasero, J. Trudel)1974. Na kongresu IFIP-a (International Federation forInformation Processing) R. Kavalski predstavio Prolog sirojjavnosti.1977. David Warren naprvio efikasnu implementacijukompajlera za Prolog za DEC-10 u Edinburgu. (EdinburskiProlog). Osnova sintakse za moderan Prolog.

Milena Vujosevic Janicic Programske paradigme

Page 13: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

Razvoj Prologa

1981. Seminari u Sirakuzi i Los Andjelesu.1982. Prva medunarodna konferencija o Prologu u Marselju.1983. Japanski projekat o razvoju racunara 5. generacije.1986. The Association for Logic Programminghttp://www.logicprogramming.org/

1993. Zavrsen Japanski projekata razvoja racunara 5.generacije.1995. ISO Prolog standarad2007, 2012. Korekcije standarada, dodavanje modula

Milena Vujosevic Janicic Programske paradigme

Page 14: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

Razvoj Prologa

Prolog se cesto koristi kao sinonim za logicko programiranje.Nakon pocetnih godina intenzivnog razvoja jezika, sada jerazvoj usmeren ka integracijama jezika sa drugim programskimjezicima.I dalje se istrazuju efikasniji algoritmi za prevodenje Prologprograma u izvrsni kod.Razne implementacije Prologa: BProlog, GNU Prolog,JIProlog, Visual Prolog, SWI Prolog...Prolog je uticao na razvoj raznih programskih jezika: ALF, Fril,Godel, Mercury, Oz, Ciao, Visual Prolog, XSB, λProlog...

Milena Vujosevic Janicic Programske paradigme

Page 15: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

ASP i Datalog

Pored Prologa, znacajni predstavnici logicke paradime su i ASP(Answer Set Programming) i DatalogSintaksa Dataloga i jezika koji pripadaju ASP podparadigmi suveoma slicne Prologu, ali se proces resavanja problemarazlikuje

Milena Vujosevic Janicic Programske paradigme

Page 16: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

ASP i Datalog

ASP za izracunavanje ne koristi metod rezolucije vec resavaceza iskaznu logiku. Koristi se najcesce za pretragu kod NPteskih problema, npr bojenje grafova, hamiltonovi ciklusi,velike klike...Datalog (logic and databases) je u sintaksnom smislu podskupProloga koji se koristi za integraciju podataka, izvlacenjepodataka, umrezavanje, analizu programa, cloud computing.Datalog moze da koristi razlicite efikasne algoritme zaodredivanje vrednosti upita. Datalog nije Tjuring kompletan.

Milena Vujosevic Janicic Programske paradigme

Page 17: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

Resavanje problemaTeorijske osnovePrvi logicki jezikRazvoj PrologaDrugi predstavnici logicke paradigmePrimena

Primena logickog programiranja

Logicko programiranje je pogodno zaresavanje problema matematicke logike,obradu prirodnih jezika,podrsku relacionim bazama podataka,automatizaciju projektovanja,simbolicko resavanje jednacina,razne oblasti vestacke inteligencije...

Logicko programiranje nije pogodno zaI/O algoritme,grafiku,numericke algoritme...

Milena Vujosevic Janicic Programske paradigme

Page 18: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanjaTeorijske osnove

Pregled

1 Logicko programiranje

2 PrologTeorijske osnove

3 Literatura i pitanja

Milena Vujosevic Janicic Programske paradigme

Page 19: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanjaTeorijske osnove

Teorijske osnove i Prolog

Kao sto se Haskell oslanja na lambda racun, tako se Prologoslanja na logiku prvog reda i metod rezolucijePotrebno je poznavanje pojmova iskazne logike i logike prvogreda (formula, interpretacija, vrednost, literal, standardneforme, unifikacija, rezolucija...)Proloski zapis programa je izveden iz zapisa formula logikeprvog reda.

Milena Vujosevic Janicic Programske paradigme

Page 20: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanjaTeorijske osnove

Teorijske osnove i Prolog

Proloski zapis je redukovan zapis formula logike prvog reda —ne mogu se sve formule logike prvog reda izraziti u Prologu.U Prologu se mogu izraziti samo Hornove klauze.Hornova klauza: disjunkcija literala sa najvise jednimnenegiranim literalom

Milena Vujosevic Janicic Programske paradigme

Page 21: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanjaTeorijske osnove

Teorijske osnove i Prolog

Hornova klauza odgovara implikaciji

(A1 ∧ A2... ∧ An)⇒ B

jer je to ekvivalentno sa

¬(A1 ∧ A2... ∧ An) ∨ B

odnosno sa¬A1 ∨ ¬A2... ∨ ¬An ∨ B

Hornove klauze se u prologu zapisuju u obliku

B ⇐ (A1 ∧ A2... ∧ An)

pri cemu se znak ⇐ zapisuje kao :-

B : −(A1,A2, ...,An)

Milena Vujosevic Janicic Programske paradigme

Page 22: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanjaTeorijske osnove

Teorijske osnove i Prolog

Hornove klauze predstavljaju ogranicenje: ne moze se izrazititvrdenje oblika ¬A⇒ BPrethodnom tvrdenju odgovara formula A ∨ B , dakle formulakoja sadrzi dva nenegirana literala

Milena Vujosevic Janicic Programske paradigme

Page 23: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanjaTeorijske osnove

Unifikacija

Supstitucija je preslikavanje koje promenljive preslikava utermove. Supstitucija se sastoji od konacnog broja pravilapreslikavanja, npr x → a, y → f (a, b), u → vDva terma t i u se mogu unifikovati ako i samo ako postojisupstitucija σ tako da vazi tσ = uσProblem unifikacije je problem ispitivanja da li postojisupstitucija koja cini dva izraza (dva terma ili dve formule)jednakim.Unifikacija se koristi prilikom trazenja resenja u okviru Prologa.Za formalnu definiciju unifikacije i supstitucije, pogledati nprskriptu iz Vestacke inteligencije

Milena Vujosevic Janicic Programske paradigme

Page 24: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanjaTeorijske osnove

Unifikacija primeri

Milena Vujosevic Janicic Programske paradigme

Page 25: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanjaTeorijske osnove

Prolog program

Programiranje u Prologu se sastoji uobezbedivanju cinjenica o objektima i odnosima medu njimadefnisanju pravila o objektima i odnosima medu njima,formiranju upita o objektima i odnosima medu njima.

Milena Vujosevic Janicic Programske paradigme

Page 26: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanjaTeorijske osnove

Hello world!

?- write(’Hello world!’), nl.Hello world!true.

Milena Vujosevic Janicic Programske paradigme

Page 27: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

LiteraturaPitanja

Pregled

1 Logicko programiranje

2 Prolog

3 Literatura i pitanjaLiteraturaPitanja

Milena Vujosevic Janicic Programske paradigme

Page 28: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

LiteraturaPitanja

Literatura — osnovna

Concepts of programming languages, Robert W. SebestaProgramming Language Pragmatics, Michael L. ScottSkripta Vestacka inteligencija, Predrag Janicic, Mladen NikolicSlajdovi prof Dusana Tosica sa istoimenog kursaB-Prolog http://www.picat-lang.org/bprolog/download/manual.pdf

http://www.hakank.org/bprolog/

Milena Vujosevic Janicic Programske paradigme

Page 29: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

LiteraturaPitanja

Literatura — dodatna

Absys: the first logic programming language — A retrospectiveand a commentary http://www.sciencedirect.com/science/article/pii/0743106690900309

The early years of logic programming — Robert Kowalskihttp://www.doc.ic.ac.uk/~rak/papers/the%20early%20years.pdfhttp://www.doc.ic.ac.uk/~rak/papers/History.pdf

D. Tosic, R. Protic: PROLOG kroz primere, Tehnicka knjiga,Beograd, 1991.B. Bajkovic, M.Durisic, S.Matkovic: PROLOG i logika, Krug,Beograd, 1998.

Milena Vujosevic Janicic Programske paradigme

Page 30: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

LiteraturaPitanja

Pitanja

Sta cini teorijske osnove logickog programiranja?Na koji nacin se resavaju problemi u okviru logicke paradigme?Koji su osnovni predstavnici logicke paradigme?Za koju vrstu problema je pogodno koristiti logickoprogramiranje?Za koju vrstu problema nije pogodno koristiti logickoprogramiranje?

Milena Vujosevic Janicic Programske paradigme

Page 31: Logiˇckoprogramiranje MilenaVujoˇsevi ´cJani ˇci´cpoincare.matf.bg.ac.rs/~milena/pp/2015/08/pp_08_slajdovi.pdf · Logiˇckoprogramiranje Prolog Literaturaipitanja Pregled 1 Logiˇckoprogramiranje

Logicko programiranjeProlog

Literatura i pitanja

LiteraturaPitanja

Pitanja

Sta je Hornova klauza i cemu ona odgovara?Sta je supstitucija?Kada se dva terma mogu unifikovati?Od cega se sastoji programiranje u Prologu?

Milena Vujosevic Janicic Programske paradigme