ВУЗ:
36. Добавьте синтаксические диаграммы к диаграммам из вопроса 4 в разделе 5.4, чтобы получить совокупность диа-
грамм, определяющих структуру Танец, которая может быть структурой Ча-ча-ча или Вальс, где Вальс состоит из од-
ной или более копий типа
вперед по_диагонали каданс
или
назад по_диагонали каданс.
37. Нарисуйте дерево синтаксического анализа приведенного ниже выражения, используя синтаксические диаграммы,
представленные на рис. 5.14.
х * у + у / х
38. Какую оптимизацию кода может выполнить генератор кода при создании машинного кода для следующего операто-
ра?
if (X = 5) then (Z ← X + 2) else (Z ← X + 4)
39. Упростите следующий фрагмент программы:
Y ← 5;if (Y = 7) then (Z ← 8) else (Z ← 9)
40. Упростите следующий фрагмент программы:
while(X ≠ to 5) do (X ← 5)
*41. Нарисуйте диаграмму (подобную диаграмме, показанной на рис. 5.20), представляющую последовательность опе-
раций резолюции, необходимых для того, чтобы показать, что совокупность высказываний (Q OR ¬R), (T OR R), ¬P, (P
OR ¬T) и (R OR ¬P) противоречива.
42*. Является ли совокупность высказываний ¬R, (T OR R), (P OR ¬Q), (Q OR ¬T) и (R OR ¬P) противоречи-
вой? Обоснуйте свой ответ.
43*. К каким выводам может прийти программа на языке Prolog, если поставить ей цель
bigger(X, Lassie).
Исходными высказываниями являются следующие:
bigger(rex, lessie).bigger(fido, rex).bigger(spot, rex).bigger(X,Z) :- bigger(X,Y),
bigger(Y,Z).
44*. К каким выводам придет программа на языке Prolog, если поставить ей цель
eq(X, У.) .
Исходными высказываниями являются следующие:
qrteq(a b).qrteq(b, с).qrteq(c, a).qrteq(U, W :- qrteq(U, V), qrteq(V, W).eq(X, У) :-
qrteq(X, Y), qrteq(Y, X).
45*. Какие проблемы могут возникнуть при выполнении машиной следующего фрагмента программы (описанной в
разделе 1.7), в которой числа хранятся в 8-битовом формате с плавающей точкой?
X ← 0.01;while(X ≠ 1.00) do (вывести значение переменной X; X ← X + 0.01)
Ответы на вопросы для самопроверки
Раздел 5.1
1. Программа на языке третьего поколения является машинно-независимой в том смысле, что ее команды не содержат
машинные атрибуты, такие, как номера регистров и машинные адреса ячеек памяти. Кроме того, она является машинно-
зависимой, поскольку в ней по-прежнему возможны ситуации арифметического переполнения и появления ошибки округле-
ния.
2. Основное отличие заключается в том, что ассемблер переводит каждую команду исходной программы в единствен-
ную машинную команду, тогда как компилятор часто порождает сразу несколько команд на машинном языке, чтобы полу-
чить эквивалент единственной команды исходной программы.
3. Декларативная парадигма программирования основывается на разработке описания задачи, которую требуется ре-
шить. Функциональная парадигма требует от программиста описывать решение задачи в виде решений более мелких задач.
Объектно-ориентированное программирование делает упор на описании компонентов предметной области задачи.
4. Языки третьего поколения позволяют в значительной степени формулировать текст программы непосредственно в
терминах предметной области задачи, а не в терминах компьютерной тарабарщины, как это требовалось в языках предыду-
щих поколений.
Раздел 5.2
1. Использование описательных констант позволяет улучшить читабельность программы.
2. Оператор объявления описывает терминологию, тогда как исполняемый оператор описывает этапы выполнения ал-
горитма.
3. Целый, действительный, символьный и логический (булев).
4. Структура if-then-else и структура цикла while являются наиболее распространенными.
Страницы
- « первая
- ‹ предыдущая
- …
- 138
- 139
- 140
- 141
- 142
- …
- следующая ›
- последняя »