U okviru programskog jezika za neki gradivni element se kaze da je gradjanin prvog reda ako:
U okviru jezika ne postoje restrikcije po pitanju  njegovog kreiranja i koriscenja
U okviru jezika ne postoje restrikcije po pitanju njegovog kreiranja
U okviru jezika ne postoje restrikcije po pitanju njegovog koriscenja
U okviru jezika ima restrikcija na njegovo koriscenje
Sta cini stanje programa?
Sve vrednosti u memoriji kojima program u toku izvrsavanja ima pristup
Sve promenljive u programu
Sve funkcije u programu
Sve vrednosti u memoriji kojima program u toku izvrsavanja nema pristup
Kako se u funkcionalnim jezicima nadoknadjuje nepostojanje implicitnog stanja?
Koriscenjem eksplicitnog stanja koje se moze napraviti po potrebi
Ne nadoknadjuje se
Ovo je trik pitanje, u funkcionalnim jezicima postoji implicitno stanje
Razlicitim naredbama dodele
Sta podrazumeva referentna prozirnost?
Ako se na dva mesta referencira na isti izraz, onda je vrednost ta dva izraza ista
Da je bitan redosled izvodjenja operacija
Da se delovi izraza NE MOGU sracunati nezavisno, a onda se zdruziti naknadno
Da naredba dodele ima propratni efekat
Osnovna struktura podataka koja se javlja u svim funkcionalnim jezicima je:
Lista
Mapa
Stablo
Niz
Zakljucivanje tipova moze biti:
Staticko i dinamicko
Deduktivno i induktivno
Neposredno i posredno
Striktno i nestriktno
Obelezite odgovor koji tacno opisuje listu parnih brojeva prve desetice,  pomnozenih sa 2:
[2* x| x<-[0..10],  mod x 2 ==0]
[x| x<-[0..10], mod x 2 ==0]
[x| x<-[0..10],div x 2 ==0]
[2*x| x<-[0..10], div x 2 ==0]
Obeleziti odgovor koji tacno opisuje listu parova oblika (x,y) u kojima je x+y=5.
[(x,y)| x<-[1..5], y<-[1..5], x+y==5]
[(x,y)| x<-[1..10], y<-[1..10], x+y==5]
[(x,x)| x<-[1..5]]
[(x,y)| x+y==5]
Kod striktne semantike:
Prvo se izracunaju vrednosti svih operanada, pa se onda izracunava vrednost izraza.
Izracunavanje operanada, tj. Argumenata odlaze se sve dok te vrednosti ne budu neophodne.
Prenos parametara je po potrebi.
Je vazno to sto ona omogucava kreiranje beskonacnih struktura i izraza.
Karakteristike programa sa referentnom prozirnoscu su?
Formalna konciznost, prikladni su za formalnu verifikaciju, manje su podlozni greskama i lakse ih je optimizovati , transformisati i paralelizovati.
Portabilnost, jednostavnost, mala velicina i skriptovanje
Skracen zapis i tipovi podataka visokog nivoa
Skalabilnost i portabilnost
Kako biste kompajlirali Haskell program pod nazivom „Zdravo“?
ghc Zdravo.hs
ghci Zdravo.hs
ghc Zdravo.haskel
ghci Zdravo.haskell
Koji su rezultati funkcija „length“ , „ sum“ i „head“ za listu [1,5,7,2,3]?
5,18 ,1
5,18,3
5,1,1
6,18,3
Koji je rezultat sledeceg izraza: map (*2) [1,5,7,9,12,17]?
[2,10,14,18,24,34] 
[1,5,7,9,12,17]
[2,5,7,9,12,17]
[2,7,12]
Koji je rezultat sledeceg izraza: filter (>3) [1,2,-8,17,-4,4,3,51]
[17,4,51]
[1,2,-8,-4]
[17,4,51,3]
[1,2,-8,-4,3]
Sta od navedenog ne spada u karakteristike Haskell-a?
Nije strogo tipiziran jezik
Lenja evaluacija- izbegavaju se nepotrebna izracunavanja
Cist je funkcionalni jezik
Podrska za paralelno i konkurentno programiranje
Koja su tri najznacajnija predstavnika logicke paradigme?
Prolog, ASP, Datalog
Java, Simula, C++
Prolog, Haskell, Lisp
C, Payton, C#
Logicko programiranje je pogodno za:
Resavanje problema matematicke logike
I/O algoritme
Grafiku
Numericke algoritme
Logicko programiranje nije pogodno za:
I/O algoritme
Simbolicko resavanje jednacina
Automatizaciju projektovanja
Podrsku relacionim bazama podataka
Sta je literal?
Atomicka formula ili negacija atomicke formule
Predikatska formula ili negacija predikatske formule
Funkcija ili inverz funkcije
Skup termova 
Sta je klauza?
Disjunkcija literala
Inkluzija literala
Ekvivalencija literala
Negacija literala
Sta je problem unifikacije?
Problem ispitivanja da li postoji supstitucija koja cini dva izraza jednakim
Problem ispitivanja da li postoji supstitucija koja cini dva izraza razlicitim
Problem ispitivanja da li se dva izraza mogu nadovezati jedan na drugi.
Problem ispitivanja da li je duzina dva izraza jednaka.
Kohezija je pojam koji se odnosi na na to:
koliko blisko su povezane operacije koje se vrse u rutini ili modulu
koliko blisko su povezani hardver i softver
kolika je jacina povezanosti dve rutine ili modula
koliko cesto se salju poruke medju korisnicima
Na sta se odnosi kopcanje?
Na jacinu povezanosti dve rutine ili modula
Na nacin komunikacije izmedju korisnika  
Na otkrivanje gresaka u programu  
Na pravljenje odgovarajucih izmena u programu 
Kod koji se razvija primenom funkcionalne dekompozicije ima:
slabu koheziju i jako kopcanje
slabu koheziju i slabo kopcanje
jaku koheziju i jako kopcanje
jaku koheziju i slabo kopcanje
OOP je nastala kao jedna od posledica:
Softverske krize
Finansijske krize
Hardverske krize
Aneksiozne krize
Enkapsulacija je:
Skup mehanizama koje obezbedjuje jezik za skrivanje implementacionih detalja
Skup mehanizama koje obezbedjuje korisnik za skrivane detalja programa
Skup mehanizama koje obezbedjuje jezik za skrivanje interfejsnih detalja
Uzi pojam od pojma skrivanja podataka
Aliasi su?
Vise promenljivih sa istom adresom
Promenljiva sa vise adresa
Imena promeljivih
Kljucne reci u Prologu
Kontrola toka definise:
Redosled izracunavanja koje racunar sprovodi da bi se ostvario neki cilj
Dopustive vrednosti za promenljive
Dopustive tipove povratnih vrednosti funkcija
Redosled po kom se ucitavaju tokeni iz datoteke
Prolog se oslanja na:
Logiku I reda i metod rezolucije
Lambda racun
Pojam rekurzije
Samo na metod rezolucije
Hornova klauza je:
Disjunkcija literala sa najvise 1 nenegiranim literalom
Disjunkcija literala sa proizvoljnim brojem nenegiranih literala
Konjukcija literala sa 2 nenegirana literala
Konjukcija literala sa 1 negiranim literalom
Supstitucija je preslikavanje oblika:
promenljiva -> term
promenljiva -> token
term -> klauza
term -> promenljiva
Sta od navedenog NIJE deo programiranja u Prologu?
deklaracija imena biblioteka sa cinjenicama o objektima i odnosima medju njima
obezbedjivanje cinjenica o objektima i odnosima medju njima
defnisanje pravila o objektima i odnosima medju njima
formiranje upita o objektima i odnosima medju njima
Promenljive u prologu se zapisuju
Pocetnim velikim slovom ili simbolom _
Pocetnim malim slovom
Ne postoji konvencija o zapisivanju promenljivih
Alfa-numerickim karakterima bez konvencije o pocetnom slovu
Cinjenice u Prologu su
Hornove klauze bez negiranih literala
Hornove klauze sa 2 nenegirana literala
Disjunkcija literala sa najvise 1 nenegiranim literalom
Hornove klauze bez nenegiranih literala
Pravila u Prologu su
Hornove klauze u punom obliku
Hornove klauze bez negiranih literala
Hornove klauze sa proizvoljnim brojem negiranih literala
Hornove klauze bez nenegiranih literala
Prolog generise odgovore
Uporedjujuci upit sa bazom podataka 
Uporedjujuci cinjenicu sa bazom podataka 
Uporedjujuci pravilo sa bazom podataka
Uporedjujuci aksiomu sa bazom podataka
Ako je S promenljiva a T proizvoljni element unifikacija u Prologu se vrsi:
Tako sto se termu S dodeli T
T primi vrednost S
Unifikuju se samo ako predstavljaju istu konstantu
Unifikuju se ako imaju istu arnost i jednake dominantne simbole
Sistemski predikati u Prologu
Omogucavaju kreiranje i zakljucivanje o novim predikatima za vreme izvrsavanja programa
Omogucavaju kreiranje i zakljucivanje o novim predikatima za vreme kompilacije
Omogucavaju definisanje pravila o novim predikatima za vreme izvrsavanja programa
Omogucavaju definisanje pravila o novim predikatima za vreme kompilacije
Interpretacija pravila deklarativno (u Prologu) ako je p(a,X) pravilo, izgleda:
Za svako X istinito je p(a,X)
Za svako X, zadatak p(a,X) je izvrsen
Da li postoji vrednost promenljive X za koji vazi p(X)
Izracunavanjem ostvari cilj p(X) i nadji vrednost promenljive X za koju vazi svojstvo p
Stablo izvodjenja u prologu 
Je konacno ako su sve grane u njemu konacne, u suprotnom je beskonacno
Je uvek konacno
Je konacno ukoliko unapred znamo broj grana
Ne moze nikad biti beskonacno  
U smislu deklarativne semantike, stablo izvodjenja u Prologu
Odgovara poretku primene pravila rezolucije na postojeci skup cinjenica i pravila
Odgovara poretku primene pravila supstitucije na postojeci skup cinjenica i pravila
Odgovara procesu ispunjavanje ciljeva i podciljeva
Odgovara procesu formiranja upita o objektima
Sta, od sledeceg, ne spada u svojstva Prologa?
Prolog moze da dokaze da neki cilj nije ispunjen. 
Prolog nije cist deklarativni jezik (kontrola rezolucije i backtracking-a)
Prolog je restrikcija logike prvog reda na formule koje se mogu svesti na Hornove kauze
Prolog je true/fail sistem, a ne true/false sistem
Formalizam za funkcionalne jezike je:
Lambda racun
Tjuringova masina
URM masina
Logika i reda
Lambda racun
Ne zamara se arhitekturom masine
Ne naglasava pravila za transformaciju izraza
Zavisi od arhitekture mašine
Podrzava drugacija pravila za razlicite arhitekture
Ispravna sintaksa λ-izraza, od sledecih, je:
λx.x+1
(x,x+1) λ
λ : x, x+1
λ : x → x+1
Pravilni (valjani) λ-izrazi nazivaju se
λ-termovi
λ-tokeni
λ-apstrakcije
λ-simboli
Koji par od sledecih, ne sadrzi alfa-ekvivalentne termove:
λij.i+j*5 i  λmn.n+m*5
λij.i+j*4 i  λmn.m+n*4
λv.5+v/2 i λp.5+p/2
λx.x+6 i  λz.z+6
α-redukcija predstavlja:
Preimenovanje
Supstituciju promenljive i izraza
Funkcijsko prosirenje
Transformacija funkcija koje kao argumente sadrze konstante
Normalni oblik se dobija
Visestrukom beta-redukcijom
Visestrukom alfa-redukcijom
Visestrukom delta-redukcijom
Visestrukom eta-redukcijom
Funkcionalna paradigma zasniva se na:
Pojmu matematicke funkcije
Pojmu rekurzivne funkcije
Principu nasledjivanja
Programu sa blokovima naredbi
Osnovna apstrakcija u imperativnim programskim jezicima je:
Kontrola toka
Funkcija
Objekat
Klasa
Sta NIJE osnovna aktivnost kod funkcionalnog programiranja?
Deklaracija funkcije
Definisanje funkcije
Primena funkcije
Kompozicija funkcija
Kod kog programskog jezika funkcija moze biti povratni tip?
Haskell
C
C++
Java
Leksika je:
Podoblast sintakse koja se bavi opisivanjem osnovnih gradivnih elemenata jezika
Podoblast semantike koja se bavi opisivanjem osnovnih gradivnih elemenata jezika
Podoblast sintakse koja se bavi pridruzivanjem znacenja ispravnim konstrukcijama na nekom programskom jeziku
Podoblast semantika koja opisuje kako se izracunavanje izvrsava
Kako se u programskom jeziku nazivaju reci, a kako njihove kategorije?
Lekseme i tokeni
Imenice, glagoli i pridevi
Regularni izrazi i funkcije
Generatori i operatori
U izrazu a=2*b+1 odvojiti lekseme:
a, = , 2, *, +, 1, b
2, 1
a, b
=, *, +
Sta radi leksicki analizator?
Dodeljuje ulaznim recima odgovarajuce kategorije, sto je bitno za dalji proces prevodjenja
Opisuje kako se izracunavanje izvrsava
Definise znacenje prevodjenja u drugi jezik
Apstrahuje izvrsavanje programa
Sintaksa programskog jezika:
definise nacine kombinovanja osnovnih elemenata jezika u ispravne jezicke konstrukcije
pridruzuje znacenje ispravnim konstrukcijama na nekom programskom jeziku
odredjuje znacenje jezika
odredjuje opseg vrednosti koje promenljive mogu da imaju
Semantika programskog jezika:
pridruzuje znacenje ispravnim konstrukcijama na nekom programskom jeziku
dodeljuje ulaznim recima odgovarajuce kategorije
odredjuje deo programskog jezika u kojem je vidljivo neko ime
pridruzuje znacenje neispravnim konstrukcijama na nekom programskom jeziku
Neformalno opisati semantiku sledece naredbe: if (a<b) a++;
Ukoliko je vrednost promenljive a manja od vrednosti promenljive b, onda uvecaj vrednost promenljive a za jedan
Ukoliko je vrednost promenljive a manja od vrednosti promenljive b, onda umanji vrednost promenljive b za jedan
Ukoliko je vrednost promenljive a jednaka vrednosti promenljive b, onda uvecaj vrednost promenljive a za jedan
Ukoliko je vrednost promenljive a manja od vrednosti promenljive b, nemoj nista da radis
Operaciona semantika:
opisuje kako se izracunavanje izvrsava
definise znacenje prevodjenjem u drugi jezik, za koji se pretpostavlja da je poznata semantika
smesta rezultate prevodjenja u izvrsnu datoteku
dodeljuje imena promenljivama
U okviru operacione semantike postoje:
strukturna operaciona semantika i prirodna operaciona semantika
strukturna operaciona semantika i neprirodna operaciona semantika
tipska operaciona semantika i vestacka operaciona semantika
tipska operaciona semantika i strukturna operaciona semantika
Kompajler prevodi kod na masinski kod u skladu sa zadatom:
semantikom jezika
sintaksom jezika
leksikom jezika
funkcionalnoscu jezika
Navesti neki aspekt semanticke korektnosti koji se moze proveriti tek u fazi izvrsavanja programa
Deljenje nulom
Da li su sve promenljive koje se koriste u izrazima definisane
Da li su sve promenljive koje se koriste u izrazima odgovarajuceg tipa
Da li su zagrade lepo rasporedjene
Koja paradigma se cesto koristi kao sinonim za imperativnu paradigmu?
Proceduralna
Objektno-orijentisana
Funkcionalna
Logicka
Stanje programa cine:
Sve sacuvane informacije, u datom trenutku vremena, kojima program ima pristup
Sve naredbe i procedure u programu
Sve informacije koje nemaju ogranicenja po pitanju pristupa
Sve naredbe,uslovi i potprogrami koji su deklarisani na globalnom nivou
Kolika ce biti vrednost promenljive c ako znamo da je u pitanju proceduralni jezik, a=5,b=10, b=a+3, c=b-a?
c=3
c=5
c=8
c=10
Izbaciti ono sto smatrate da je NETACNA cinjenica o podrutinama proceduralne paradigme:
Svaki podrutina zavisi od ostalih
Podrutina izvrsava svoje operacije u ime svog pozivaoca
Svaka podrutina ima svoje lokalne podatke i algoritam
Podrzava se ugnjezdavanje podrutina
Koristeci prenos po vrednosti,u memoriji za program, odrediti vrednost m po izlasku iz proceduze za sledeci niz naredbi: var m : integer m:=2; prva(m); procedure prva (m: integer); m:=m+1
m=2
m=3
m=4
m=0
Korutine u imperativnim jezicima:
omogucavaju povratak u stek okvir koji nije nuzno stek okvir pozivaoca potprograma
Vracaju nas iskljucivo u prethodni stek okvir
Vracaju nas uvek na mesto prvog poziva funkcije
Vracaju nas na stek okvir koji se trenutno nalazi najdublje na steku