Java i Prolog: Ima neka (polu)tajna veza

Rad ukratko opisuje osnove matematičke logike, logičko programiranje, jezik Prolog te Prolog kod iz knjige “The Java Virtual Machine Specification”.

SAŽETAK

Danas je “in” strojno učenje, koje se najčešće definira kao podskup umjetne inteligencije, a naročito duboko učenje (duboke neuronske mreže) kao podskup strojnog učenja. No ne trebamo odbaciti i “klasičnu” umjetnu inteligenciju i programski jezik Prolog (Prolog i Lisp su najčešće korišteni programski jezici za “klasičnu” AI).

Prolog je temeljen na matematičkoj logici, specifičnije na metodi rezolucije u logici prvog reda (iako ima i predikate drugog reda).
Postoje različite biblioteke za inteoperabilnost Jave i Prologa (Java program poziva Prolog program ili obrnuto, Java interpreter pisan u Prologu i obrnuto…).
Ali, manje je poznato da je jedan važan dio specifikacije Java virtualnog stroja definiran kroz Prolog, tj. postoji Prolog kod u knjizi “The Java Virtual Machine Specification”.

Rad ukratko prikazuje osnove matematičke logike, logičko programiranje, jezik Prolog i Prolog kod u “The JVM Specification”. Naveden je i jedan primjer Prolog programa kojeg je autor napravio prije čak 30ak godina, a koji “zna” derivirati npr. i funkciju y = pow(x, x) 🙂