Professional Documents
Culture Documents
Uvod
Uvod
Процедуралне
Декларативне (непроцедуралне)
Процедурални језици – рачунару кажемо како ће проблем да реши, тј. дајемо му низ инструкција
које ће да доведу до решења проблема. Чисто процедурални су старији програмски језици C,
Pascal, Fortran…
Декларативни језици имају сасвим други приступ; они описују проблем, а сам рачунар
(програмски преводилац) ће да дође до решења. Такви су језици PROLOG, LISP, Haskell… Ни ова
класа језика није млада. Још 60-их година двадесетог века су се појавили декларативни
програмски језици. PROLOG и LISP су стари програмски језици, док је Haskell новији. Декларативни
програмски језици су мало заступљени у свету програмирања, а користе се за вештачку
интелигенцију, експертске системе и сл.
Логичка парадигма
Најзаступљенији програмски језик који користи ову парадигму је PROLOG. У процесу решавања
проблема PROLOG користи методу резолуције.
1965. створен је језик логичке парадигме ABSYS (Aberdin System) – Абердин је град у
Шкотској
1971. У МАрсеју је створен Q-System који је п1972. Преименован у PROLOG (PROgramming
in LOGic)
1995. Направљен је ISO PROLOG стандард
Направљено је више имплементација PROLOG-a: BProlog, GNU Prolog, JIProlog, Visual Prolog, SWI
Prolog...
Ми ћемо корисити SWI Prolog.
I/O алгоритме
Графику
Нумеричка израчунавања
Рецимо, хоћемо да кажемо да је Марко Јанку и Петру. Направићемо релацију otac(X,Y) где је Х
отац, a Y син.
Формулисаћемо релацију braca(X,Y), где су X и Y браћа ако имају заједничког оца (променљива Z).
otac(marko,janko).
otac(marko,petar).
braca(X,Y):-otac(Z,X),otac(Z,Y).
?-braca(petar,janko)
Следећи пример показује како се креира функција add која сабира два броја:
main = do
putStrLn "The addition of the two numbers is:"
print(add 2 5) --calling a function
main = do
putStrLn "The factorial of 5 is:"
print (fact 5)
И main је функција која у свом телу позива већ направљену функцију fact.