Програмски преводиоци 1/Јануар 2024
Пређи на навигацију
Пређи на претрагу
- Овај рок није решен. Помозите СИ Wики тако што ћете га решити.
Јануарски испит 2024. године одржан је 18. јануара и трајао је 150 минута. Поставка рока није доступна са странице предмета.
1. задатак
Поставка
Дат је следећи код на програмском језику C.
int f1(int a) {
int b = a;
b = b + 1;
return b;
}
int f2(int a) {
int b = a;
b = b + f1(1);
return b;
}
int m(int a, int n, int (*m1)(int), int(*m2)(int)) {
int tmp1, int tmp2;
tmp1 = f1(a);
tmp2 = f2(a);
if (n == 0) {
return 1;
} else {
return tmp2 * m(tmp1, n - 1, m1, m2);
}
}
int main() {
printf("%d", m(1, 3, &f1, &f2));
return 0;
}
- Дати испис програма;
- Дати изглед стека након последњег позива функције
f2; - Дати x86 код за функцију
f2.
Решење
2. задатак
Поставка
Дата је следећа граматика:
- <С> -> <С>а
- <С> -> <С><А>б
- <С> -> епс
- <А> -> а
- <А> -> б
- Конструисати аутомат и контролну табелу СЛР(1) аутомата
- Исправити граматику тако да се уклони конфликт али семантика остане иста.
Решење
3. задатак
Поставка
Дате су следеће граматике:
Граматика А:
- <П> -> о <П> <П>
- <П> -> в
Граматика Б:
- <П> -> <П> о <П>
- <П> -> в
Граматика C:
- <П> -> <П> <П> о
- <П> -> в
Граматика D:
- <П> -> в <Q>
- <Q> -> <П> о <Q>
- <Q> -> епс
Граматика Е
- <П> -> в <П> о
- <П> -> в
- Које су две граматике исте?
- Доказати на примеру неке секвенце да се остале 3 граматике разликују.
Решење
4. задатак
Поставка
Написати функцију static Obj find(String name, boolean isGlobal) за микројаву, која се понаша као оператор :: ако је isGlobal=true.
Решење
5. задатак
Поставка
За дати регуларни израз (a | (bc)*)+ d (c | ε)+ конструисати ДКА.