Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Prolog


Reč Prolog se može koristiti sa sledećim značenjima:
  • Prolog је ime prvog logičkog jezika kreiranog na Univerzitetu Eks u Marseju 1972. godine (vidi web stranicu Alena Kolmerauera http://www.lim.univ-mrs.fr/~colmer/). Ovaj jezik ima dugu istoriju. Možete ga nazvati i Clocksin-Mellish Prolog (to je jedna od prvih i najpoznatijih knjiga o Prolog jeziku: Clocksin W.F. i Mellish C.S. Programiranje u Prolog jeziku). Danas je moderan ISO Standard Prolog-a zasnovan na idejama ovog jezika.
  • Tradicija na polju logičkog programiranja koristiti reč Prolog kao deo imena programskih jezika, npr: Turbo Prolog, LPA Prolog itd. Stoga, ne pitajte me: “Zašto postoji samo jedan logički jezik - Prolog?” U stvari, postoji mnogo logičkih jezika. Većina njih su Prolozi. Ali to su drugačiji jezici.
  • Neki ljudi koriste reč Prolog kao sinonim za logičko programiranje. Dakle Prolog nije samo programski jezik, već i pravac u matematici i kompjuterskoj nauci.
Pa onda, koja je razlika između logičkih jezika i ne-logičkih? Postoje neki veoma jednostavni kriterijumi za identifikovanje logičkog jezika:
  1. Svaki logički jezik bi trebalo da sadrži određeni podskup (neko bi rekao čisti Prolog) koji podržava tzv. model-teoretsku semantiku. To znači da se svaki program napisan u ovom podskupu jezika može konvertovati u formulu logike prvog reda (ili višeg). Takođe, pojedini podskupovi formula logike prvog reda mogu se konvertovati u ovaj čisti podskup programskog jezika. Tako je čisti Prolog tek još jedan format za pisanje logičkih formula.
  2. Pravila izvršenja logičkog programa treba da budu ispravna, u skladu sa model-teoretskom semantikom programa. To znači da program ne bi trebalo nikada da izračunava (pogrešna) rešenja koja nisu logička posledica programa (program je logička formula, kao što znamo).
  3. Pravila izvršenja programa bi trebalo da budu kompletna, u skladu sa model-teoretskom semantikom programa (bar u slučajevima kada ne dolazi do beskonačnog izračunavanja!). To znači da bi program trebalo da izračunava sva rešenja koja su logička posledica programa. To je jedna od najmoćnijih ideja logičkog programiranja. Logički jezik se može upotrebiti i za iscrpnu pretragu, ako je neophodno.
Problem je u tome što većina praktičnih logičkih jezika ima nelogičke osobine koje ne poseduju model-teoretsku semantiku. Ali svaki logički jezik bi trebalo da sadrži određeno čisto jezgro!

Dakle, ako Vam neko kaže da je razvio neki logički jezik, prvo ga upitajte sledeće:
  1. Koji su osnovni koncepti i osobine jezika?
  2. Da li su te osobine čiste u logičkom smislu?
Ako u jeziku postoje određeni važni koncepti koji ne podržavaju model-teoretsku semantiku, to znači da je autor ostavio interesantnu mogućnost stvaranja potpuno logičkog programskog jezika. Dakle, budite pažljivi: mnogi od Prologa uopšte nisu logički jezici (nemaju čisto jezgro!). Razvoj ispravnog logičkog jezika sa svim modernim osobinama (objektno orijentisan, konkurentan, baziran na agenta, vizuelan itd.) predstavlja pravi izazov.

Preporučujem da posetite sledeće sajtove pre otpočinjanja sopstvene pretrage na polju logičkog programiranja:
  • Actor Prolog је logički jezik objektno orijentisan, sa klasičnom model-teorijskom semantikom. Razvijen je na Institutu za radio inženjering i elektroniku ruske Akademije nauka: http://www.cplire.ru/Lab144/index.html . Postoje zbornici (na engleskom) u kojima možete pronaći interesantne linkove:
      • Моrozov А.А. Actor Prolog: Objektno orijentisan jezik sa klasičnom deklarativnom semantikom // K. Sagonas, P. Tarau, urednici, Proc. IDL ‘99 radionica, Pariz, 1999. http://www.cplire.ru/Lab144/paris.pdf . Ovaj članak će Vam pomoći da uporedite pojedine osnovne logičke koncepte i objektno orijentisane koncepte.
      • Моrozov А. А, Оbukhov Yu.V. Pristup logičkom programiranju inteligentnih agenata za pretraživanje i prepoznavanje informacija na internetu // Prepoznavanje modela i analiza slike. - 2001. - Vol. 11. - Br. 3 - str. 570-582 http://www.cplire.ru/Lab144/pria570m.pdf . Ovaj rad je posvećen konkurentnom kompjuterskom modelu Actor Prolog-a.
  • Početna stranica Endrju Dejvisahttp://fivedots.coe.psu.ac.th/~ad/ . Ima veoma korisnih i članaka i pregleda na sajtu:
      • Dejvison А. Pregled jezika za logičko objektno orijentisano programiranje // P. Wegner, A. Yonezawa i G. Agha, izdavači, Pravac istraživanja u podudarnom objektno orijentisanom programiranju. - MIT Press, 1993. - str. 42-106 http://www.cs.mu.oz.au/tr_db/mu_92_03.ps.gz
      • Dejvison А. Jezici za logičko programiranje za internet // A. Kakas, F. Sadri, izdvač, Računska logika: Od logičkog programiranja do budućnosti. - Springer Verlag, 2001. Tarau. http://fivedots.coe.psu.ac.th/%7Ead/papers/summBob.ps.gz
  • Istraživački zbornici Pola Taraua http://www.cs.unt.edu/~tarau/ . Pol Tarau je kreator BinProlog-a. Ima veoma interesantnih radova i otvorenih projekata.
  • Web sajt Antona Eliensa http://www.cs.vu.nl/~eliens/research/logic/index.html. Ima mnogo zanimljivih istraživačkih projekata koji povezuju logičko programiranje, web izvšitelje i virtuelnu stvarnost.
  • Početna stranica Seng Wai Loka http://goanna.cs.rmit.edu.au/~swloke/ . Vidi njegov doktroski rad о web logičkom programiranju.
  • Web stranica Vjačeslava A. Petuhinahttp://www.isu.ru/~slava/ . Sajt sadrži informacije o ruskim projektima na polju logičkog programiranja.
  • GNU Prolog predstavlja besplatnu implementaciju (pod GPL-om) ISO Prolog-a. Može se prevesti u izvornu automatsku šifru koja je izuzetno brza u izvršenju. Druga osobina je uključen prinudni rešavač http://sourceforge.net/projects/gprolog/.
  • Ne zaboravite da posetite web stranicu Visual Prolog-a http://www.visual-prolog.com. Visual Prolog je naslednik Turbo Prolog i PDC Prolog jezika. Nije tek samo još jedna implementacija ISO Prolog-a. Vision Prolog je potpuno drugačiji logički jezik sa moćnim sistemom oznaka i interfejsa za Windows programiranje. Ja već mnogo godina koristim Vision Prolog u svojim istraživačkim projektima. Sa moje tačke gledišta, to je jedna od najprofesionalnijih implementacija ideje logičkog programiranja.
  • Net Prolog је logički programski sistem koji proizvodi binarni kod, izvršni u Java Virtual Machine-u (JVM). Net Prolog je napravio Sedrik Luis de Karvaljo (http://www.inf.ufg.br/~cedric/eng_main.htm). Izvorni fajlovi napisani u Visual Prolog-u su dostupni. http://netprolog.pdc.dk/.
  • Sajt Sergeja A. Penkova ( http://www.ezy-software.com) sadrži zbirku izvora za različite programske objekte u Visual Prolog-u. http://users.tpg.com.au/adsluwfl/vpstudio/index.htm i information o njegovom EZY Prolog-u.
  • Sajt Paula Horhea Lopesa de Mure sadrži informacije o njegovom projektu Logtalk i neke linkove ka web izvorima na logičkom OOP-u. http://www.ci.uc.pt/logtalk/manuals/index.html.
  • http://www.swi-prolog.org/ SWI Prolog je GNU besplatan jezik.
Postoje i neki veći sajtovi posvećeni Prolog-u.




Published (Last edited): 05-09-2012 , source: http://techref.massmind.org/techref/language/prolog/index.htm