Pitanja sa predavanja Flashcards

1
Q

.
Шта је програмски језик? Чему служи програмски језик?

A

Програмски језик је скуп синтаксних и семантичких правила који служи за опис
рачунарских програма. Служи за комуникацију између човека и рачунара, између 2 машине,
а може служити и за комуникацију између двоје људи, тако што нпр.Читају код један
другом.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Предности и мане машински зависних језика у односу на машински независне.

A

Предности: ближи су архитектури па су погоднији за оптимизацију и ефикаснији су, лакше и брже се преводе на машински језик.
Мане: потребно је детаљно познавање архитектуре/хардвера, теже се дебагује

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Шта је парадигма? Шта је програмска парадигма?

A

Парадигма је шаблон/оквир по коме се нешто дешава. Програмска парадигма је
шаблон/скуп правила које задовољавају сви програмски језици који спадају у ту парадигму.
Она је одређен начин на који се врши програмирање

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Навести 4 основне програмске парадигме.

A

Импреативна, ООР, логичка и функционална.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Које су основне особине процедуралне програмске парадигме?
A

Процедуралну парадигму карактерише то да ми задајемо ток извршавања програма, тј.
ми описујемо решење проблема, а машина прати наше решење.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Које су основне особине декларативне програмске парадигме?

A

За разлику од процедуралне декларативна је описна, тј. програмер описује проблем, а
сам механизам долази до решења проблема.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Навести 2 најпознатија језика функционалне парадигме.

A

LISP, Haskell

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Навести 2 најпознатија језика логичке парадигме.

A

Prolog, ASP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Навести главне представнихе упитних језика базе података.

A

SQL, xQuery

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Навести 4 додатне програмске парадигме.

A

Конкурентна, компонентна, скриптна, реактивна

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Навести основну особину реактивног програмирања.

A

Код реактивног програмирања акценат је на преношењу измена приликом асинхроне
промене података. Нпр. а+б=ц значи да свака промена вредности променљивих а и б, утиче
на вредност променљиве ц.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Навести 2 типичне особине скрипт језика.

A

Динамички типизирани и интерпретирају се.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Да ли је парадигма програмирања ограничења декларативна или императивна.
Објасни.

A

Она је декларативна зато што се заснива на постављању релација између
променљивих у виду ограничења и пуштању програма да сам дође до решења које
задовољава те релације

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Пример домена употребе компонентне парадигме

A

Креирање интерфејса апликације-постављање текстуалних поља, прозора, дугмића

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Шта је генеричко програмирање?

A

То је стил програмирања у којем се алгоритми пишу са апстрахованим типовима где се типови об као параметри да би се избегло дуплирање кода.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  1. Навести основне особине конкурентне парадигме.
A

Конкурентна парадигма представља више процеса који се извршавају истовремено и имају исти о.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q
  1. Које форме конкурентности постоје?
A

Конкурентност у ужем смислу-један процесор, једна меморија
Паралелно програмирање-више процесора, једна меморија,
Дистрибуирано програмирање- више процесора, више меморија

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q
  1. Да ли су језици за обележавање текста програмски језици? Образложи.
A

Нису, јер се не уклапају у саму дефиницију програмских језика, јер се по дефиницији
језиком задаје неко израчунавање, док се овде не врши никакво израчунавање, нити се врши
неки програм.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q
  1. Шта представља програмирање ограничења?
A

Програмирање ограничења је програмска парадигма, подпарадигма декларативне
парадигме, где се проблем задаје у терминима променљивих и ограничења које те
променљиве морају да задовоље.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q
  1. Да ли је програмирање ограничења декларативна или императивна парадигма?
A

Декларативна је, јер се не задаје поступак, већ се постављају услови које променљиве морају да испуњавају.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q
  1. У којим доменима се користи програмирање ограничења?
A

Углавном се користи у решавању комбинаторних и оптимизационих проблема, тј. у
оптимизационим истраживањима

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q
  1. Наведи 3 програмска језика која имају подршку за програмирање ограничења.
A

С++, Јава, Пајтон

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q
  1. Наведи 3 библиотеке за програмирање ограничења за С++, Јава, Пајтон.
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q
  1. Нека је дата следећа једнакост: ONE+THREE+FOUR=EIGHT. Формулиши домене и
    ограничења.
A

За О, Т, F домен је {1-9}, док је за остала слова домен {0-9}, а услови су:
100O+N10+E+10000T+1000H+100R+10E+E+1000F+100O+10U+R=10000E+1000*
I+100G+10H+T.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q
  1. Како је Џон Бакус утицао на развој функционалних језика?
A

Најзначајнији је због његовог рада везаног за развој Фортрана. Био је добитник
Тјурингове награде поводом чега је одржао говор о предности функционалних језика у
односу на императивне, јер су читљивији, поузданији и вероватније исправни.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q
  1. Који су најпознатији функционални програмски језици?
A

LISP, Haskell, Scala, F#, Elixir

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q
  1. Који је домен употребе функционалних програмских језика?
A

Они су језици опште намене и могу се свуда користити. Нпр. за обраду базе података,
биоинформатику, финансијско моделирање, ста

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q
  1. Која је основна апстракција у функционалној програмској парадигми?
A

Функцијса

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q
  1. Да ли математичке функције имају пропратне ефекте? Образложи.
A

Немају, у математичким функцијама нема параметра који би могао да утиче на
резултат као нпр. глобална променљива, већ за исти улаз увек добијамо и исти излаз

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q
  1. Шта су то функције вишег реда? Навести неке најбитније.
A

Функција вишег реда је функција која прима другу функцију као параметар или је
враћа као повратну вредност или оба. Примери: map, fold(reduce), filter

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q
  1. Шта се подразумева под појмом транспарентности референци и шта је основна
    последица?
A

То значи да вредност израза не зависи од контекста у ком се налази, а основна
последица је непостојање бочних ефеката.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

. Ко је творац програмског језика Хаскел?

A

Међународни комитет/Хаскел Кари

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q
  1. Које су основне карактеристике програмског језика Хаскел?
A

Чист функционални језик, лења израчунавања, статички типизиран, строго типизиран
језик, има мочни систем типова..

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q
  1. Шта је статичко, а шта динамичко типизиран језик? Навести по један пример.
A

Статички типизиран језик је језик где се типови одређују у фази компилације, док се у
динамички типизираном језику типови одређују при извршавању. Статички типизиран је
Хаскел, а динамички Пајтон

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Објасни појам лење евалуације

A

Лења евалуација подразумева да се не раде непотребна израчунавања, нпр. при
израчунавању израза тачно || некиИзраз, некиИзраз се неће израчунавати јер нам његова
вредност није потребна

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

. Шта је слабо, а шта строго типизиран језик? Наведи примере

A

Строго типизиран језик значи да сви типови морају да се поклапају, нема
имплицитних конверзија. Није могуће извршавати математичке операције са подацима
различитих типова. Нпр. не можемо да помножимо 3.5*2. Пример је Хаскел. Слабо
типизиран језик значи да има имплицитних конверзија и да је претходно израчунавање
могуће јер се у том случају прво изврши конверзија броја 2 у 2.0, и затим и резултат буде
реалан број-7.0.Пример је С

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q
  1. Наведи основне типове података у Хаскелу.
A

Bool, Char, Int, Integer, Float, String

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q
  1. Шта су листе у Хаскелу?
A

Листа је колекција истих типова произвољне дужине (колико то меморија омогућава).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q
  1. Шта су торке у Хаскелу?
A

Торке су колекције фиксираног броја вредности, али различитих типова.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q
  1. Наведи 3 функције за рад са листама у Хаскелу.
A

Map, foldl, foldr, filter

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q
  1. Шта је то грађанин првог реда у контексту програмских језика?
A

Градивни елемент у оквиру језика у коме не постоји рестрикција креирања и коришћења.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q
  1. Наведи примере грађана првог реда у С-у.
A

Int, double, float, показивачи…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q
  1. Да ли су функције грађани првог реда у С-у? Образложи.
A

Нису, јер се не могу саме прослеђивати, већ се могу прослеђивати само показивачи на
те функције.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q
  1. Наведи примере појмова који нису грађани првог реда у С-у.
A

Функције, низови..

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q
  1. Да ли је функција грађанин првог реда у Хаскелу?
A

Јесте

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q
  1. Шта су то функције вишег реда?
A

То су функције које као повратну вредност имају неку функцију или је имају као
аргумент или оба.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Користећи фју map у Хаскелу напиши израз којим се сваки члан листе [1,3,7]
увећава за 1.

A

map(+)[1,3,7]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

Користећи фју map у Хаскелу напиши израз којим се сваки члан х листе [1,3,7]
замењује кубом броја х+1

A

Map(3+1)[1,3,7],
map(3)(map(+1)[1,3,7])

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

Koристећи функцију foldl у Хаскелу напиши израз којим се израчунава производ
елемената листе природних бројева [1,2,3,10]

A

foldl(*)1[1,2,3,10]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q
  1. Koристећи функцију foldl у Хаскелу напиши израз којим се израчунава сума
    апсолутних вредности елемената листе природних бројева [1,-2,3,-10]
A

foldl(+)0(map(abs)[1,-2, 3, -10]).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

Како се најприродније остварује понављање извршавања наредби у императивним,
а како у функционалним програмским језицима?

A

У императивним итерацијом, а у функционалним рекурзијом.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
52
Q
  1. Шта су то чисти функционални језици?
A

Чисти функционални језици су они који не допуштају никакве пропратне ефекте
(потпуна транспарентност референци).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
53
Q
  1. Наведи 3 чиста функционална језика.
A

Хаскел, Миранда, Clean

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
54
Q

Да ли је могуће дозволити неке бочне ефекте у контролисаним условима и и даље
задржати потпуну транспарентност референци?

A

Не, ако хоћемо да имамо у потпуности транспарентност референци не смемо
допустити никакве пропратне ефекте.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
55
Q

Шта нам омогућава својство транспарентности референци што није омогућено у
нпр. императивном програмирању где не постоји то својство?

A

Необавезан је експлицитни редослед навођења функција, битно је да се дефинише
израз који представља решење проблема, док је код императивних редослед битан

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
56
Q

Којим наредбама се најчешће мења стање програма?

A

Најчешће наредбом доделе (директно са =, а индиректно са ++)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
57
Q

Наведи примере 2 познате функције у којима је неизбежно нарушити
транспарентност референци

A

Random, scanf

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
58
Q

Шта је мана код транспарентности референци?

A

Не смемо користити пропратне ефекте, што је доста тешко јер постоје алгоритми
којима је суштина да мењају стања, а неке функције постоје само због својих пропратних
ефеката (scanf)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
59
Q
  1. Шта су погодности код транспарентности референци?
A

Програми су формално концизни (блиски математичком запису), прикладни за
формалну верификацију (провера исправности програма је скроз математичка), мање су
подложни грешкама, лакше их је оптимизовати и трансформисати

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
60
Q
  1. Навести 3 функционална језика која имају и особине императивних језика.
A

Scala, Python, Ruby

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
61
Q

Када хоћемо да дамо предност брзини извршавања да ли бирамо статички или
динамички типизиране језике и зашто?

A

Бирамо статички типизиране јер не постоји додатна провера типова током извршавања (типови одређени у фази компилације).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
62
Q
  1. Када бирамо динамички типизиране језике?
A

Када желимо да имамо већу флексибилност по цену мало споријег извршавања.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
63
Q
  1. Да ли се код статички типизираних језика типови морају навести? Образложи.
A

Није увек неопходно, нпр. Хаскел је статички типизиран језик, али ипак не морамо да
наводимо типове већ их он сам може закључити

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
64
Q
  1. Шта је типски разред. Наведи 3 типа.
A

Типски разред казује које особине мора да има неки тип да би над њим могла да се
изврши нека операција. Они дефинишу и које функције мора неки тип да имплементира да
би припадао том разреду. Примери: типови са једнакошћу, типови са уређењем, нумерички типови.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
65
Q
  1. Навести пример типа података код кога не постоје типски разреди.
A

Комплексни бројеви, буловске вредности

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
66
Q
  1. Када је нека функција полиморфна?
A

Функција је полиморфна уколико за аргументе може да прима аргументе различитог
типа при позиву.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
67
Q
  1. Шта је типска променљива и шта нам она омогућава?
A

Означавају променљиве које се односе на тип. Омогућавају нам да дефинишемо
типове функција које су полиморфне , тј. да функције раде са било којим типом података
који се уклапа у типску променљиву.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
68
Q
  1. Када се за неки језик каже да је слабо типизиран, а када да је јако типизиран?
A

Слабо типизиран је када се не поклапају типови, а јако типизиран је када се сви
типови морају поклапати

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
69
Q
  1. Шта је то стриктан израз, а шта нестриктан? Навести по пример.
A

Стриктан израз је онај који се може израчунати само ако су познати сви параметри.
Нестриктан израз је онај који се може израчунати чак и ако неки параметри нису наведени.
Примери: нестриктан израз- а||b, стриктан израз- а+б

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
70
Q
  1. Када се за неку семантику каже да је стриктна, а када да је нестриктна?
A

Семантика је стриктна када за сваки израз проверава да ли постоји вредност за све
променљиве било оне потребне за израчунавање израза или не. У супротном је нестриктна.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
71
Q
  1. Да ли Хаскел има стриктну или нестриктну семантику?
A

Нестриктну.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
72
Q
  1. Навести 2 програмска језика са стриктном семантиком.
A

LISP, Scala

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
73
Q
  1. Који је животни век променљивама у функционалном језику?
A

Не постоје променљиве, па ни њихов животни век.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
74
Q
  1. Како је организовано руковање меморијом приликом извршавања програма за
    податке који се више не користе у програму?
A

О деалокацији меморије брине се сакупљач отпадака, објекти у меморији се деле по
старости а очекује се да ће млађи објекти брже бити искоришћени и уклоњени.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
75
Q
  1. Који су изазови у прављењу компајлера за функционалне језике?
A

Изазов је направити компајлер који подржава транспарентност референци, бесконачне
структуре података..

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
76
Q
  1. Да ли је ефикасност предност или мана функционалних програмских језика?
A

Предност, раније је била мана, али доста је узнапредовало, тако да сада Хаскел има
ефикасност као нпр.С.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
77
Q
  1. Зашто је тестирање и дебаговање у општем случају једноставније код
    функционалних језика? Образложи
A

Тестирање је једноставније јер је свака функција потенцијални кандидат за проверу
тестова. Функције не зависе од стања система, што олакшава синтезу тест примера и проверу
да ли је израз одговарајући.
Дебаговање је једноставније јер су функције углавном мале и јасно специјализоване

78
Q
  1. Која је експресивност ламбда израза?
A

Еквивалентна је експресивности Тјурингове машине.

79
Q
  1. Написати дефиницију за грађење ламбда термова.
A

Променљива: променљива је валидни ламбда терм.
ƛ апстракција- Ако је t ƛ терм, а х променљива, онда је и ƛ х.t ƛ терм.
ƛ примена- ако су t и s ƛ термови, онда је и (t s) ƛ терм

80
Q
  1. Објасни значење ламбда израза ƛ х.х*х+3 и примени га на конкретну вредност.
A

Oznacava preslikavanje
f(x) = xx +3, (lambx,xx+3)2 ->2*2+3 ->7

81
Q
  1. Шта је алфа еквивалентност? Навести пример 2 еквивалентна ламбда терма.
A

Алфа еквивалентност представља независност имена везаних променљивих у ламбда
изразу. А пример 2 еквивалентна ламбда израза: ƛх.х=ƛу.у

82
Q
  1. Да ли су термови х и у алфа еквивалентни? Образложи.
A

Нису, јер су то слободне променљиве.

83
Q
  1. Да ли су термови ƛх.
    х+у и ƛ у.у+х алфа еквивалентни? Образложи.
A

Nisu ,jer je u prvom izrazu y slobodna a u drugom x slobodna,

84
Q

81.Koja je asocijativnost primene,a koja apstrakcije?

A

Primena je levo asocijativna,a aprstrakcija desno asocijativna

85
Q

82.Sta su slobodne promenljive u lamba termy i koje su slobodne ,a koje vezane u izrazu lambaZ.z*y-1-x.

A

Slobodne promenljive u termu su one koje nisu vezane lamba apstrakcijom.U primeru x i y su slobodne a z vezana

86
Q
  1. Да ли су термови ƛх.х+у и ƛу.у+у алфа еквивалентни? Образложи.
A

Нису, јер је у у другом терму везана променљива, а у првом није.

87
Q
  1. Да ли су термови ƛz.ƛx.x+z(ƛy.y 2) и ƛz.ƛy.y+z(ƛy.y 2) алфа еквивалентни?Образложи.
A

Јесу. Изрази са везаним променљивама су им исти, а нема слободних променљивих.

88
Q
  1. Шта је алфа редукција? Навести пример.
A

Алфа редукција је преименовање везаних променљивих, нпр. ƛх.х и ƛу.у су иститермови само је на први примењена алфа редукција

89
Q
  1. Шта је бета редукција? Навести пример.
A

Бета редукција је израчунавање вредности неке функције, нпр. (ƛх.хх+1)1→11+1→2

90
Q
  1. Шта је делта редукција? Навести пример.
A

Делта редукција трансформише изразе који садрже само константе, нпр. 5+3→8

91
Q
  1. Навести пример ламбда израза који дефинише функцију вишег реда кја каоаргумент прима функцију примењену на број 10.
A

ƛх.(х 10)

92
Q
  1. Навести пример ламбда израза који дефинише функцију вишег реда која имафункцију као повратну вредност.
A

(ƛху.х*у+3)5

93
Q
  1. Како се дефинишу функције са више аргумената? Написати ламбда израз којиодговара функцији f(x,y,z)=2x+4+yz
A

Функцију са више аргумената можемо дефинистаи помоћу Каријевог поступкаnправљењем функција са једним аргументом. Функција f(x,y,z)=telo, Каријевим поступкомсводи се на ƛх1х2…хn=telo. Горњи пример се своди на: ƛxyz.2x+4+yz

94
Q
  1. Koje су предности лење евалуације ламбда израза? Наведи и објасни пример где сето дешава.
A

Избегавају се непотребна израчунавања, гарантује се завршетак извршавањаувек када је то могуће, омогућава коришћење бесконачних структура података. Пример: (ƛх.2)(45*89-23)→2

95
Q
  1. Шта је апликативни, а шта нормални поредак извођења редукција? Навести потенцијалне предности и мане и једног и другог.
A

Апликативни одговара позиву по вредности, прво се рачуна вредност аргумената па сешаље у функцију.Предности: брже се израчунава и читкије је. Мане: можда се не израчуна вредност функције, а могуће ју је израчунати.Нормални поредак-бета редукцијом се редукује најлевљи израз, одговара евалуацијипо имену.Предности: завршиће се израчунавање увек ако је то могућеМане: дуже се исписује, није толико читко

96
Q
  1. Шта је нормални облик функције?
A

Нормални облик функције је облик који се добија бета редукцијама све док су оне могуће.

97
Q
  1. Да ли за сваку функцију постоји нормалан облик? Колико нормалних облика можеда има функција? У каквом су односу нормални облици функције?
A

Нема свака функција свој нормалан облик. Свака функција може имати највише једаннормалан облик који је јединствен. Ако се неки израз може свести на два различита ламбдаизраза, онда постоји трећи до ког се може доћи из та два.

98
Q
  1. Извести нормалан облик:
A

а) (ƛx.xx-10)((ƛy.y+2)5)→ ((ƛy.y+2)5)((ƛy.y+2)5)-10→ 33-10→ -1
b) (ƛx.x(x 15))(ƛy.y+2)→ (ƛy.y+2)((ƛy.y+2)15)→ ((ƛy.y+2)15)+2→ 15+2+2→ 19
c) (ƛx.5)((ƛx.x x)(ƛx.x x)→ 5
d) (((ƛxyz.x
y-z)4)3)5→ (((ƛxyz.xy-z)4)3)5→ ((ƛyz.4y-z)3)5→ (ƛz.12-z)5→ 12-5→7
e) (ƛx.x(x(x 7)))((ƛxy.x+2
y)3)→ ((ƛxy.x+2y)3)(((ƛxy.x+2y)3)((((ƛxy.x+2y)3))7)→((ƛx.(ƛy.x+2y))3)(((ƛxy.x+2y)3)((((ƛxy.x+2y)3))7)→(ƛy.3+2y)(((ƛxy.x+2y)3)((((ƛxy.x+2y)3))7)→3+2((ƛxy.x+2y)3)((((ƛxy.x+2y)3))7)→3+2((ƛx.(ƛy.x+2y))3)((((ƛxy.x+2y)3))7)→3+2(ƛy.3+2y)((((ƛxy.x+2y)3))7)→3+2(3+2(3+27))→3+2(3+2(3+14))→ 3+2(3+217)→ 3+2(3+34)→ 3+237→ 3+74→ 77
f)(ƛx.x (x 3))((ƛabc.a+b
c)2)→ ((ƛabc.a+bc)2)(((ƛabc.a+bc)2)3)→ (ƛb.2+bc)(((ƛbc.a+bc)2)3)→ ƛc.2+(((ƛbc.a+bc)2)3)c→ƛc.2+((ƛbc.2+bc)3)c→ ƛc.2+(ƛc.2+3c)c

99
Q
  1. Шта чини теоријске основе логичког програмирања?
A

Логика првог реда.

100
Q
  1. На који начин се решавају проблеми у оквиру логичке парадигме?
A

Логика се користи као декларативни језик за описивање проблема, а доказивач теорема као механизам за решавање проблема. Решавање проблема подељено је између програмера који описује проблем и доказивача теорема који тај проблем решава

101
Q
  1. Који су основни представниси логичке парадигме?
A

Пролог, Даталог, АСП

102
Q
  1. За коју врсту проблема је погодно користити логичко програмирање?
A

За решавање проблема математичке логике, обраду природних језика, подршку релационим базама података, аутоматизацију пројектовања, симболичко решавање једначина, разне области вештачке интелигенције.

103
Q
  1. За коју врсту проблема није погодно логичко програмирање?
A

За графику, нумеричка израчунавања, И/О алгоритме

104
Q
  1. Ukoliko je zadata supstitucija σ =[x→ a, y→ b] I term t=f(x,y) izracunati tσ.
A

tσ=f(a,b).

105
Q
  1. Ukoliko je zadata supstitucija σ=[x→ g(x)] i term t=f(x) izracunati tσ.
A

tσ=f(g(x)).

106
Q
  1. Ukoliko je zadata supstitucija σ=[x→a, y→ g(x)] i term t=f(x,y) izracunati tσ.
A

tσ=f(a, g(x)).

107
Q
  1. Ukoliko je zadata supstitucija σ=[y→ g(x), x→ a] i term t=f(x,y) izracunati tσ.
A

tσ=f(a, g(x)).

108
Q
  1. Kada kazemo da su izrazi unifikabilni?
A

Izrazi e1 i e2 su unifikabilni ako postoji supstitucija σ takva da je e1σ=e2σ. Supstitucija σ jejedan njihov unifikator.

109
Q
  1. Da li za dva izraza uvek postoji unifikator?
A

Ne, za dva izraza ne mora uvek postojati unifikator, npr za f(x,y) i g(x) nema unifikatora jernemaju isti broj argumenata, a pri tome supstitucijom funkcijske simbole ne mozemo zameniti.

110
Q
  1. Ako su dati termovi t1=f(x,y) i t2=f(c,z) i ako su oni unifikabilni, izracunati jedanunifikator ovih termova. Ako nisu unifikabilni, objasni zasto.
A

Jesu unifikabilni, jedan unifikator mogao bi biti σ=(x→c, y→z).

111
Q
  1. Ako su dati termovi t1=f(x,y) i t2=g(y,x) i ako su oni unifikabilni, izracunati jedanunifikator ovih termova. Ako nisu unifikabilni, objasni zasto.
A

Ovi termovi nisu unifikabilni jer supstitucijom funkcijske simbole ne mozemo dapromenimo, tako da, koju god supstituciju izvrsili, f!=g

112
Q
  1. Ako su dati termovi t1=f(x,y, g(z)) i t2=f(g(g(a)), g(a), a) i ako su oni unifikabilni,izracunati jedan unifikator ovih termova. Ako nisu unifikabilni, objasni zasto.
A

Ovi termovi nisu unifikabilni jer se funkcija ne moze preslikati u konstantu???

113
Q
  1. Ako su dati termovi t1=f(g(g(x)), y,z) i t2=f(y, g(z), g(a)) i ako su oni unifikabilni,izracunati jedan unifikator ovih termova. Ako nisu unifikabilni, objasni zasto.
A

Ovi termovi jesu unifikabilni I jedan moguci unifikator je σ=[y→g(z), z→g(a), x→a]

114
Q
  1. Sta je metod rezolucije?
A

Rezolucija je oblik zakljucivanja u kome se na osnovu formula A=>B I B=>C zakljucujeA=>C. Odnosno, na osnovu ¬A˅B i ¬B˅C zakljucujemo ¬A˅C.

115
Q
  1. Neka su date formule predikatske logike:
    1.A=>B
  2. C=>D
  3. A=>C.
    Ako je A tacno, metodom rezolucije dokazi D.
A
  1. ¬A˅B
  2. ¬C˅D
    3.¬A˅C
    4.A
    5.¬D (pretpostavimo suprotno)
  3. C (rezolucija iz 3 I 4)
  4. D (rezolucija iz 2 I 6)
  5. ┴ (kontradikcija iz 5 I 7)
116
Q
  1. Svi vole kucnog ljubimca. Milan ne voli glasne kucne ljubimce. Macak Zuca je glasan.
    a) Pretvori date iskaze u dobro formirane formule predikatske logike.
    b) Prevesti prethodne izraze u KNF
    c) Metodom rezolucije dokazati da Zuca nije Milanov kucni ljubimac.
A

a)
1. KucniLjubimac(x,y)→Voli(y,x)
2. Glasan(x)→¬Voli(Milan, x)
3. Glasan (Zuca)
4. ¬KucniLjubimac(Zuca, Milan)

b)
1. ¬KucniLjubimac(x,y)˅ Voli(y,x)
2. ¬Glasan(x) ˅¬Voli(Milan, x)
3. Glasan(Zuca)
4. ¬KucniLjubimac(Zuca, Milan)

c)
1. ¬KucniLjubimac(x,y)˅ Voli(y,x)
2. ¬Glasan(x) ˅¬Voli(Milan, x)
3. Glasan(Zuca)
4. KucniLjubimac(Zuca, Milan)-pretpostavimo suprotno
5. ¬Glasan(Zuca)˅¬Voli(MIlan, Zuca)-supstitucija iz 2
6.¬Voli(MIlan, Zuca)-rezolucija iz 3 I 5
7. ¬KucniLjubimac(Zuca, Milan)˅Voli(MIlan, Zuca)-supstitucija iz 1
8. ¬KucniLjubimac(Zuca, Milan)-rezolucija iz 6 I 7
9. ┴-kontradikcija iz 4 I 8.

117
Q
  1. Hornova klauza je:
A

Disjunkcija literala sa najvise jednim nenegiranim literalom.

118
Q
  1. Tvrdjenja se sastoje od:
A

Cinjenica i pravila.

119
Q
  1. Pretpostavka zatvorenosti je:
A

Pretpostavka da je netacno sve sto nije eksplicitno navedeno kao tacno.

120
Q
  1. Cemu sluzi stablo izvodjenja u Prologu?
A

Ono omogucava slikovit prikaz nacina resavanja problema u Prologu. Stablo izvodjenja=stablo pretrage. U smislu deklarativne semantike, odgovara poretku primene pravila rezolucije na postojeci skup cinjenica i pravila. U smislu proceduralne semantike, odgovara procesu ispunjavanja ciljeva I potciljeva.

121
Q
  1. Objasni sta je I kako funkcionise operator secenja.
A

Omogucava brze izvrsavanje programa uz manje memorijske zahteve. To je sistemski operator za eksplicitnu kontrolu backtrackinga. Odseca sve nakon prvog uspeha svih upita sa levestrane operatora.

122
Q
  1. Objasni sta karakterise imperativnu paradigmu.
A

Prednost se daje algoritmima, a program cine podaci i algoritmi. Ovu paradigmu karakterise izracunavanje u terminima naredbe koje menjaju stanje programa.

123
Q
  1. Navesti faze razvoja imperativne paradigme.
A

Operaciona, strukturna, proceduralna, I modularna paradigma.

124
Q
  1. Objasni sta karakterise operacionu paradigmu. Navesti probleme ove paradigme.
A

Ovo je prva faza programiranja zasnovana na dosetkama I trikovima za ustedu memorije.Koristile su se specificnosti jezika I rada racunara. Jos se naziva I trik programiranje.Programi su pisani bez nekih pravila. Karakterisu je upravljacke strukture (uslovni I bezuslovniskok) koje direktno oslikavaju hardverske instrukcije. Ovako napisani kodovi su teski za citanje Imodifikaciju

125
Q
  1. Na sta se odnosti termin “spageti programiranje”?
A

Isprepletan niz naredbi koriscenjem GOTO naredbe skoka, cesto jako tezak kod zarazumevanje, debagovanje.

126
Q
  1. Objasni sta karakterise strukturnu paradigmu.
A

Sekvenca naredbi, selekcija- da li da se izvrsi neka naredba, I ponavljanje bloka naredbi.Akcenat je na programskim strukturama gde svaka ima ulaznu I izlaznu tacku. Cilj je veceprilagodjavanje coveku

127
Q
  1. Navesti minimalan skup komandi koje se cesto koriste u operacionoj paradigmi.
A

Naredba dodele, sekvenca naredbi, obelezavanje naredbe, naredbe bezuslovnog skoka,naredbe uslovnog skoka.

128
Q
  1. Navesti 4 osnovne upravljacke strukture koje se koriste u strukturnoj paradigmi.
A

Naredba dodele, sekvenca naredbi, iteracija (while), selekcija (if-then-else).

129
Q
  1. Navesti 3 primera dodatnih upravljackih struktura koje se koriste u strukturnojparadigmi.
A

For, do-while, switch-case.

130
Q
  1. Koje su karakteristike proceduralne paradigme?
A

Apstrakcija kontrole toka- podrutine. Podrutine predstavljaju apstrakciju niza naredbi.Priblizava programiranje deklarativnoj paradigmi. Izvrsava svoje operacije u ime svog pozivaoca.Svaka podrutina je nezavisna od ostalih. Razvija se mehanizam prenosa parametara

131
Q
  1. Koja je razlika izmedju procedure I fje?
A

Procedure nemaju povratnu vrednost, a funkcije imaju.

132
Q
  1. Navesti I objasniti osnovne vrste prenosa parametara u podprogramu.
A

*Prenos po vrednosti- izraz se evaluira I njegova vrednost se kopira u promenjljivu potprograma
*Prenos po referenci- prenosi se adresa argumenta
*Prenos po rezultatu- po povratku, vrednost se kopira u pozivajucu podrutinu
*Prenos po imenu- parametri se zamenjuju neeavluiranim izrazima.
*Prenos po konstantnoj vrednosti- isto kao I prenos po vrednosti, samo se vrednosti tretirajukao konstante.
*Prenos po vrednosti I rezultatu- vrednost parametra se kopira I po ulasku I po izlasku izpodrutine.

133
Q
  1. Kako je u memoriji organizovano izvrsavanje programa?
A

POdaci potrebni za izvrsavanje potprograma su organizovani na steku, po jedan stek okvir zasvaki novi poziv potprograma

134
Q
  1. Objasni sta karakterise modularnu paradigmu.
A

Modularnost podrazumeava razbijanje veceg problema na nezavisne celine. Celine sadrzedefinicije srodnih podataka I fja. Cesto se celine smestaju u posebne datoteke, cime se postize lakseodrzavanje kompleksnih sistema. Celine mogu medjusobno da komuniciraju kroz svoje interfejse.

135
Q
  1. Objasni princip fionalne dekompozicije problema.
A

Kreiranje programa proceduralne paradigme zasniva se na principu “od opsteg ka posebnom”. Polazi se od postavljenog zadatka kao opsteg, zatim se uocavaju jednostavnije celine Izadatak se dekomponuje na jednostavnije delove. Ukoliko su ti delovi I dalje kompleksni razbijajuse na jos jednostavnije delove, dok se ne dodje do nivoa na kom se vise ne moze vrsiti dekompozicija.

136
Q
  1. Sta su bocni efekti I kako se oni manifestuju?
A

Bocni efekti odnose se na situacije kada se prilikom izracunavanja nekog izraza istovremenon menja I stanje memorije (npr. Vrednost izraza se upisuje u neku memorijsku lokaciju). Oznake promenljivih su istovremeno I oznake memorijskih lokacija, pa se u naredbama mesaju oznake lokacija I njihovih vrednosti. Primer: x++;

137
Q
  1. Sta je kohezija?
A

Kohezija je koncept koji opisuje koliko su blisko povezane operacije koje se vrse u jednojcelini (klasi).

138
Q
  1. Sta je kopcanje?
A

Kopcanje je koncept koji opisuje koliko su medjusobno povezane dve razlicite celine(klase).

139
Q
  1. Sta je efekat talasanja?
A

Efekat koji se javlja kada napravimo izmenu u nekom delu programa, a kao posledica teizmene javlja se greska/neocekivano ponasanje programa u nekom drugom delu, zbogpovezanosti/kopcanja tih delova.

140
Q
  1. Koji su nedostaci funkcionalne dekompozicije?
A

Jer se kreira dizajn programa koji je dizajniran na osnovu osobina glavnog programa.Ovakav dizajn nije pogodan za izmene zahteva jer svaki put moramo da menjamo nesto I u main-u,jer je sve preko njega povezano. U startu se koristi znanje kako glavni problem treba da izgleda, paje cesto ad hoc I tesko je ponovo iskoristivo.

141
Q
  1. Sta je nasledjivanje?
A

Nasledjivanje je kreiranje novih klasa od vec postojecih. Omogucava postojenje hijerarhijeklasa koje simuliraju koncept klasa I potklasa iz stvarnog sveta.

142
Q
  1. Sta je polimorfizam?
A

Predstavlja ponovno iskoriscavanje koda. Npr. Pise se fja koja kao argumente primaparametre I ta fja moze da primi razlicite tipove I radi sa razlicitim tipovima umesto da se za svakitip pise zasebna fja, ovo je parametarski polimorfizam.

143
Q
  1. Sta je apstrakcija?
A

To je skup osnovnih koncepata koje neki entitet obezbedjuje sa ciljem omogucavanja resavanja nekog problema. Apstrakcija rezultuje u odvajanju interfejsa I implementacije.

144
Q
  1. Sta je enkapsulacija?
A

Enkapsulacija (ucauravanje) je skup mehanizama koje obezbedjuje jezik (ili skup tehnika zadizajn) za skrivanje implementacionih detalja (klase, modula..). Enkapsulacijom su podaci zasticeniod nezeljenih spoljnih uticaja.

145
Q
  1. Sta je interfejs?
A

Interfejs je korisnicki pogled na to sta neki entitet moze da uradi. Implementacija vodiracuna o internim operacijama interfejsa koji ne moraju da budu poznati korisniku.

146
Q
  1. Kakav je odnos izmedju kalse I objekta?
A

Klase su sabloni za grupe objekata, tj. klase daju specifikaciju za sve podatke I ponasanjeobjekata. Za objekat kazemo da je instanca klase.

147
Q
  1. Navesti primer konkurentnosti u cilju podrske logickoj strukturi problema?
A

Kod veb pregledaca, razmenjuju se podaci sa serverom, prikazuje se tekst I slike, reaguje sena korisnicki ulaz, sto su sve u velikoj meri nezavisni zadaci koji se prirodno mogu podeliti

148
Q
  1. Navesti primer konkurentnosti za dobijanje na brzini.
A

Moze se ostvariti na viseprocesorskim sistemu paralelnim izvrsavanjem, ali I najednoprocesorskom kada postoje neki asimetricni zadaci, kao sto je citanje ulaza I njegova obrada,gde je citanje znatno sporije, pa se u vreme izmedju dva unosa moze iskoristiti za obradu vecucitanih podataka.

149
Q
  1. Distribuirani sistemi su:
A

To su sistemi koji se sastoje od vise komponenti koje se nalaze na arzlicitim masinama Ikoje komuniciraju I koordiniraju sa ciljem da izgledaju kao jedan monolitni sistem koji obavlja istufju.

150
Q
  1. Navesti 3 primera distribuiranih sistema.
A

WWW, senzori aviona, online igre…

151
Q
  1. Poredjaj hijerarhijski paradigma: paralelna, distribuirana I konkurentna.
A

Konkurentna, paralelna I distribuirana (od opstije ka specificnoj)

152
Q
  1. Navedi osnovne nivoe konkurentnosti.
A

Nivo instrukcija, nivo naredbi, nivo jedinica, nivo programa.

153
Q
  1. Formulisi Amdalov zakon.
A

Faktor ubrzanja paralelizacijom odozgo je ogranicen sa 1/α, gde je α udeo programa koji semora izvrsiti sekvencijalno.

154
Q
  1. Portabilnost je:
A

Nezavisnost programa od konkretne arhitekture.

155
Q
  1. Skalabilnost je:
A

Osobina da program pokazuje bolje performanse kada ima vise dostupnih resursa.

156
Q
  1. Objasniti podelu na lake I teske zadatke.
A

Teski zadaci imaju razlicit adresni prostor, dok laki dele adresni prostor, razlikuje ih samostek I vrednosti registara

157
Q
  1. Promena konteksta se odnosi na:
A

promenu stanja procesora koja je neophodna kada se sa izvrsavanja jednog teskog zdatkaprelazi na izvrsavanje drugog teskog zadatka.

158
Q
  1. Navedi primer paralelizacije saradnjom:
A

Jedna nit zahteva rezultat druge. Primer je problem proizvodjaca I potrosaca.

159
Q
  1. Navedi primer sinhronizacije takmicenjem:
A

Dva zadatka pokusavaju da dobiju nedeljiv resurs. Primer je izvrsavanje kriticne sekcije.

160
Q
  1. Zasto je tesko naci gresku u konkurentnim programima?
A

Zato sto se greska ne mora uvek ispoljavati, vec samo kada se desi nepozeljan tokizvrsavanja, sto moze biti jako retko

161
Q
  1. Sta je vertikalno, a sta horizontalno skaliranje distribuiranih sistema?
A

Vertikalno-poboljsanje karakteristika hardvera jedne masine
Horizontalno- dodajemo nove racunare svaki put kada performanse opadnu.

162
Q
  1. Navesti prednosti distribuiranih sistema:
A

Posto se izvrsavanje vrsi nezavisno na cvorovima, jednostavno je I jeftino dodavanje cvorafunkcionalnosti kada je potrebno; pouzdanost- ako jedna masina otkaze, ne bi trebalo da budeposledica po sistem

163
Q
  1. Navesti mane distribuiranih sistema:
A

Kompleksan dizajn, tesko debagovanje I konstrukcija, izazovno rasporedjivanje poslova,kasnjenje, posmatranje padova je neophodno…

164
Q

164: Skript jezik je:

A

Jezik koji sluzi za pisanje skriptova. Skript je niz komandi koje se izvrsavaju u odgovarajucem izvrsnom okruzenju.

165
Q

165: Objasni kako se skript jezik koristi za povezivanje aplikacija.

A

Posto je za razvoj odredjenih programa cesto koriscenje razlicitih jezika, programa i/ili modula, skript jezik sluzi da poveze sve te celine kako se to ne bi radilo manuelno I kako bi se na taj nacin izbegle greske poput neodgovarajucih tipova.

166
Q

166:Navesti najznacajnije razlike iymedju tradicionalnih I skript jezika:

A

Skript jezici su vise okrenuti brzom razvoju, dinamickim proverama,lokalnoj prilagodljivosti i podrzavaju slozenije koncepte (tabele,…), dok su tradicionalni jezici okrenuti ka laksem odrzavanju, prenosivosti, efikasnosti, statickom otkrivanju gresaka.

167
Q

167:Navesti osnovne karakteristike skript jezika:

A

Skracen zapis, dinamicki su tipizirani, koriste tipove podataka viseg nivoa, interaktivno se koriste, imaju poklapanje obrazaca I omogucavaju lakse koriscenje stringova.

168
Q

168:Navesti neke tipove podataka viseg nivoa:

A

skupovi, multiskupovi, mape, liste, torke…

169
Q

169:Navesti 5 domena upotrebe skript jezika:

A

Jezici za web, matematika I statistika, obrada teksta, komandni jezici, jezici prosirenja…

170
Q

170:Navedi 3 komandna jezika:

A

bash, sh, csh…

171
Q

171:Navedi 3 skript jezika za procesiranje teksta:

A

sed, awk, perl

172
Q

172:Navedi 3 skript jezika za domen matematike I statistike:

A

R,S, Matlab, Wolfram…

173
Q

173:Sta su to jezici prosirenja? Navedi 3 primera jezika prosirenja:

A

Oni prosiruju korisnost neke aplikacije dozvoljavajuci nove komande koristeci vec postojece kao gradivne blokove. Primeri: Scheme, Tcl, VisualBasic

174
Q

174:Navedi 3 skript jezika za programiranje veb aplikacija:

A

php, JavaScript

175
Q

175:Navesti osnovne karakteristike JavaScripta:

A

To je jezik za programiranje veb aplikacija. Podrzava programiranje vodjeno dogadjajima, imperativnu I funkcionalnu paradigmu. On je multiparadigmatski, slabo tipiziran, interpretiran.

176
Q

176:Navesti 3 skript jezika opste namene:

A

Python, ruby, lua.

177
Q

177:Navesti osnovne osobine Python jezika:

A

Jednostavna I laka sintaksa, koristi vise paradigmi-opp, funkcionalnu, imperatvinu, ali primarno je skript jezik. Lak je za pisanje, strogo je I dinamicki tipiziran, ima veliku podrsku u vidu biblioteka za ogroman broj razlicitih poslova.

178
Q

178:Sta su domenski specificni jezici I koja je njihova uloga?

A

To su jezici koji su specijalizovani za neke konkretne domene. Uloga im je da se fokusiraju na specificne aspekte sistema. Koriste se kao biblioteke I u ejzicima opste namene.

179
Q

179:Koje su prednosti domenski specificnih jezika?

A

Razvoj softvera, kreiraju se kada ne postoji adekvatno resenje za neki prolem u jeziku opste namene jednostavan je za upotrebu, povecava produktivnost programa. Omogucavaju fokus na bitnije aspekte tako sto skrivaju detalje implementacije od programera

180
Q

180:Koji su preduslovi za koriscenje domenski specificnih jezika?

A

Preduslov je da se koriste kada ne postoji adekvatno resenje za neki problempri cemu bi nam DSL obezbedio efikasnije resenje nego sto bi to bilou u vec postojecim jezicima, takodje je potrebno da se takav problem javlja dovoljno cesto. Iako su laki, potrebno je da programer dobro poznaje tu specificnu oblast.

181
Q

181:U kom su odnosu opsti I domenski specificni jezici? Obrazlozi.

A

Nije uvek jasan odnos izmedju njih jer jezik moe da ima neke specijalizovane osobine za neki domen ali da se istovremeno upotrebljava I za siri sprektar od toga ili obratno, da se koristi za specijalizovan domen, a da ima mogucnosti I za sire primene.

182
Q

182:Navedi 5 DSL I za svaki navesti domen upotrebe

A

Dot- za crtanje grafova,
HTML- za opis teksta
SQL- jezik za rad sa bazama podataka,
CSS- za stilizovanje teksta,
Verilog- za modelovanje hardvera

183
Q

183:Cime se bavi leksika?

A

Bavi se opisivanjem osnovnih gradivnih elemenata jezika. U okviru leksike, definisu se reci I njihove kategorije.

184
Q

184:Cime se bavi sintaksa?

A

Ona definise strukturu izraza, tj, nacine kombinovanja osnovnih elemenata jezika u ispravne jezicke konstrukcije.

185
Q

185: Cime se bavi semantika?

A

Ona pridruzuje znacenje ispravnim konstrukcijama u nekom programskom jeziku. Ona odredjuje znacenje jezika, tj. sta se desava kad se program izvrsava.

186
Q

186:Sta je neformalna semantika I koja je njena uloga?

A

To je semantika koja je zadata opisno, a uloga joj je da programer moze da razume kako se program izvrsava I pre nego sto se pokrene.

187
Q

187:Sta su problemi sa neformalnom semantikom?

A

Dvosmislenost, nekonzistentnost I nedorecenost.

188
Q

188:Sta je formalna semantika I koja je njena uloga?

A

Semantika koja je formalno zadata I kojom se definise znacenje samo sintaksno isprevnih programa, a uloga joj je precizno definisanje znacenja programa.

189
Q

189:Navesti osnovne vrste semantika:

A

Operaciona, denotaciona I aksiomatska.

190
Q

190:Cime se bavi pragmatika programskog jezika?

A

Bavi se nacinima na koje je nameravano da se jezik prakticno koristi, tj. Na koji nacin konstrukti jezika mogu da se upotrebljavaju da bi se ostvarili razliciti zeljeni ciljevi.

191
Q

191:Navedi bar 4 mehanizma za odredjivanje kontrole toka programa:

A

rekurzija, iteracija, konkurentnost, nedeterminizam…

192
Q

192 : Objasni razliku izmedju kompilacije I interpretacija:

A

Kompilirani jezici se prevode u masinski kod koji se izvrsava direktno na procesoru racunara- faza prevodjenja I izvrsavanja su odvojene.

Interpretirani jezici se prevode naredbu po naredbu I odmah zatim se naredba izvrsava-faze prevodjenja I izvrsavanja su isprepletane.