Pitanja sa predavanja Flashcards
(192 cards)
.
Шта је програмски језик? Чему служи програмски језик?
Програмски језик је скуп синтаксних и семантичких правила који служи за опис
рачунарских програма. Служи за комуникацију између човека и рачунара, између 2 машине,
а може служити и за комуникацију између двоје људи, тако што нпр.Читају код један
другом.
Предности и мане машински зависних језика у односу на машински независне.
Предности: ближи су архитектури па су погоднији за оптимизацију и ефикаснији су, лакше и брже се преводе на машински језик.
Мане: потребно је детаљно познавање архитектуре/хардвера, теже се дебагује
Шта је парадигма? Шта је програмска парадигма?
Парадигма је шаблон/оквир по коме се нешто дешава. Програмска парадигма је
шаблон/скуп правила које задовољавају сви програмски језици који спадају у ту парадигму.
Она је одређен начин на који се врши програмирање
Навести 4 основне програмске парадигме.
Импреативна, ООР, логичка и функционална.
- Које су основне особине процедуралне програмске парадигме?
Процедуралну парадигму карактерише то да ми задајемо ток извршавања програма, тј.
ми описујемо решење проблема, а машина прати наше решење.
Које су основне особине декларативне програмске парадигме?
За разлику од процедуралне декларативна је описна, тј. програмер описује проблем, а
сам механизам долази до решења проблема.
Навести 2 најпознатија језика функционалне парадигме.
LISP, Haskell
Навести 2 најпознатија језика логичке парадигме.
Prolog, ASP
Навести главне представнихе упитних језика базе података.
SQL, xQuery
Навести 4 додатне програмске парадигме.
Конкурентна, компонентна, скриптна, реактивна
Навести основну особину реактивног програмирања.
Код реактивног програмирања акценат је на преношењу измена приликом асинхроне
промене података. Нпр. а+б=ц значи да свака промена вредности променљивих а и б, утиче
на вредност променљиве ц.
Навести 2 типичне особине скрипт језика.
Динамички типизирани и интерпретирају се.
Да ли је парадигма програмирања ограничења декларативна или императивна.
Објасни.
Она је декларативна зато што се заснива на постављању релација између
променљивих у виду ограничења и пуштању програма да сам дође до решења које
задовољава те релације
Пример домена употребе компонентне парадигме
Креирање интерфејса апликације-постављање текстуалних поља, прозора, дугмића
Шта је генеричко програмирање?
То је стил програмирања у којем се алгоритми пишу са апстрахованим типовима где се типови об као параметри да би се избегло дуплирање кода.
- Навести основне особине конкурентне парадигме.
Конкурентна парадигма представља више процеса који се извршавају истовремено и имају исти о.
- Које форме конкурентности постоје?
Конкурентност у ужем смислу-један процесор, једна меморија
Паралелно програмирање-више процесора, једна меморија,
Дистрибуирано програмирање- више процесора, више меморија
- Да ли су језици за обележавање текста програмски језици? Образложи.
Нису, јер се не уклапају у саму дефиницију програмских језика, јер се по дефиницији
језиком задаје неко израчунавање, док се овде не врши никакво израчунавање, нити се врши
неки програм.
- Шта представља програмирање ограничења?
Програмирање ограничења је програмска парадигма, подпарадигма декларативне
парадигме, где се проблем задаје у терминима променљивих и ограничења које те
променљиве морају да задовоље.
- Да ли је програмирање ограничења декларативна или императивна парадигма?
Декларативна је, јер се не задаје поступак, већ се постављају услови које променљиве морају да испуњавају.
- У којим доменима се користи програмирање ограничења?
Углавном се користи у решавању комбинаторних и оптимизационих проблема, тј. у
оптимизационим истраживањима
- Наведи 3 програмска језика која имају подршку за програмирање ограничења.
С++, Јава, Пајтон
- Наведи 3 библиотеке за програмирање ограничења за С++, Јава, Пајтон.
- Нека је дата следећа једнакост: ONE+THREE+FOUR=EIGHT. Формулиши домене и
ограничења.
За О, Т, F домен је {1-9}, док је за остала слова домен {0-9}, а услови су:
100O+N10+E+10000T+1000H+100R+10E+E+1000F+100O+10U+R=10000E+1000*
I+100G+10H+T.