Вопрос:
Опишите входную и выходную информацию при обработке каждым блоком компилятора следующей программы:
Begin a:=5; b:=a+7*(2*a/b-abc)/40b; end
6. Ответ:
Лексический блок:
Входная инф.:
Begin a:=5; b:=a+7*(2*a/b-abc)/40b; end
Выходная инф.:
Begin | a | := | 5| ; | b | := | a | + | 7 | * | ( | 2 | * | a | / | b | - | abc | ) | / | 40b | ; | end
Begin (1,0)
a (30,1)
:= (24,0)
5(40,1)
; (20,0)
b (30,2)
:= (24,0)
a (30,1)
+ (22,0)
7 (40,2)
* (23,0)
( (25,0)
2 (40,3)
* (23,0)
a (30,1)
/ (23,1)
b (30,2)
- (22,1)
abc (30,3)
) (26,0)
/ (23,1)
40b (30,4)
; (20,0)
end (2,0)
Синтаксический блок:
Входная инф.:
Выходная инф. с лексического блока.
Выходная инф.:
begin
сум(5,0,a)
умнож(2,а,R1)
дел(R1,b,R2)
выч(R2,abc,R3)
умнож(7,R3,R4)
дел(R4,40b,R5)
сум(a,R5,b)
end
Генератора кода
Входная инф.:
Выходная инф. с синтаксического блока.
Выходная инф.:
Выполнение программы
Глава №3
Вопрос:
Что понимается под словарем языка? Синтаксисом? Семантикой?
1. Ответ:
Словарь языка содержит множество лексем.
Синтаксис языка представляет собой совокупность правил построения языковых конструкций (предложений) из лексем.
Семантика языка это совокупность правил интерпретации лексем и языковых конструкций.
Вопрос:
В чем суть метода синтаксически-ориентированной трансляции?
2. Ответ:
Метод синтаксически-ориентированной трансляции, основанный на работах американского ученого Ноэля Хомского. Из гипотезы Хомского следует, что семантический анализ сводится к синтаксическому и состоит из двух процедур:
распознавание структуры входного предложения;
построение выходного текста (действий) на основе этой структуры.
Вопрос:
Назовите основные понятия теории формальных языков.
3. Ответ:
Основные понятия теории формальных языков:
Словарь – это конечное множество элементов, называемых символами.
Цепочка над словарем V – это произвольная упорядоченная последовательность символов словаря.
Пустая цепочка – это цепочка, не содержащая символов (обозначается ).
Вопрос:
Перечислите основные операции над цепочками.
4. Ответ:
Операции над цепочками:
Конкатенация (склеивание) – бинарная операция на множестве V*.
Если , V*, то результат конкатенации – цепочка .
Подстановка – замена некоторой цепочки заданной цепочки цепочкой : = aabcc, = bca, = abcac.
Вопрос:
Что называется языком над словарем?
5. Ответ:
Языком над словарем V называется некоторое множество цепочек над словарем V.
Обозначение: L(V) V*.
Вопрос:
Дан словарь V={a, в, с}. Приведите примеры конечного и бесконечного языков над данным словарем.
6. Ответ:
L={авс, аавс, васс} Это пример конечного языка, состоящего из трех цепочек.
L={an , вn , сn} (n0). aaaвввссс L, aaaвсL. Это пример языка содержащего бесконечное количество цепочек.
Вопрос:
Дан язык L={синий лес, синий темный лес, темный лес}. Приведите примеры словарей, над которыми можно определить этот язык.
7. Ответ:
V1={синий, лес, темный}
V2={с,и,н,й,л,е,т,м,ы}
