Funkcionalno i logičko programiranje

 

  Smjer: Teorijska kompjuterska nauka
  Semestar:  X                                                   
  Tip kursa:  Izborni
  Fond sati:      2+0+2
  Broj ECTS kredita:   6

 

Nastavni program:

 

  • Opći zahtjevi na programske jezike za potrebe vještačke indeligencije; Sistemi pretraživanja, prikupljanja i formalizacije znanja i mašinskog učenja;
  • Opća svojstva jezika prilagođenih potrebama vještačke inteligencije: Upotreba složenih struktura podataka; Sakrivanje detalja (upravljanja memorijom, ulazom i izlazom); Korištenje dinamičkih struktura; Zasnovanost na rekurziji
  • Opća svojstva jezika LISP: Jezik opće namjene; Funkcionalan jezik (komponovanje funkcija i rekurzija); Interpretiran jezik (read-eval-execute); Jezik sa inkrementalnim prevođenjem; Tretiranje programa i podataka na istovjetan nacin; Lista kao osnovna struktura podataka; Prefiksna notacija; Sintaksa;
  • Uvod u Common Lisp (Allegro CL); Ugrađene funkcije; Rekurzija;
  • S-izrazi: Atomi (simboli, brojevi, stringovi, vrijednosti t i nil, …); Liste i elementi liste;
  • Numericke funkcije: +, -, *, /, log, …
  • Logičke funkcije: and, or, not, every
  • Funkcije za rad sa listama: cons, list, append, car, cdr, first, rest, nth, length, …
  • Predikati: atom, consp, listp, <, =, equal, member, …
  • Upravljačke funkcije; Iteracija: do, do*, dolist
  • Lokalne promijenljive: let i let*; Globalne promenljive: setf;
  • Paketi (packages); Strukture
  • CLOS: objektno-orijentisana ekstenzija
  • Opća svojstva jezika PROLOG: Zasnivanje na logici predikata prvog reda; Deklarativno programiranje;
  • Atomi (konstante): brojevi i simboli; Promenljive;
  • Strukture: Skupovi entiteta; Rrelacije izmedju objekata;
  • Izrazi u PROLOG-u
  • Pravila, zaključci i konjukcija premisa;
  • Pretraga i logičke veze u PROLOG-u

 

Literatura:

 

  • Glasgow, J. and Browse, R. A.: Programming Languages for Artificial Intelligence, 1985
  • Neumann G.: Programming Languages in Artificial Intelligence, In Bidgoli (ed) Encyclopedia of Information Systems, Academic Press, San Diego, 2002
  • Allegro Common Lisp ver. 7.0 Documentation
  • W. F. Clocksin, C. S. Mellish: Programming in Prolog, Springer, Berlin Tokio, 1984
  • D. Crookes: Introduction on Programming in Prolog, Prentice Hall, New York, 1988