Содержание
- 2. Грамматика со сравнениями Результат операции сравнения (=, ≠, , ≤, ≥) – истина (true) или ложь
- 3. Грамматика с условными операторами Порождающие правила, задающие условные операторы в полной и сокращенной форме (служебные слова
- 4. Грамматика с циклами Порождающее правило для задания оператора цикла (служебные слова while, do – терминалы): A
- 5. Семантические программы используют счетчик k – номер очередного генерируемого элемента ОПС , а также еще один
- 6. Программа 3. 1. Через верхний элемент магазина меток, как ссылку на ранее заготовленное место для метки,
- 7. При исполнении ОПС метки, как и другие операнды, записываются в магазин интерпретатора. Выполнение операции безусловного перехода
- 8. Пример. На входе цепочка: if a>b then a:=b else b:=a ┴ будет сгенерирована следующая ОПС: a
- 9. Cгенерированная ОПС: a b > m1 jf a b := m2 j b a := ↑
- 10. Пример. На входе цепочка: while a>b do a:=b ┴ будет сгенерирована следующая ОПС: a b >
- 11. Грамматика с составными операторами Порождающие правила для задания составного оператора, т.е. последовательности других операторов (точка с
- 12. Грамматика с операторами ввода и вывода Порождающие правила для задания стандартных операторов ввода и вывода (служебные
- 13. Пример. Задана входная цепочка: begin read(а); read(M[а]); write(M[а]*а) end будет сгенерирована ОПС: а r M а
- 14. Распределение памяти и описание переменных Статический способ. Память распределяется в процессе трансляции. Для каждой переменной вычисляется
- 15. Грамматика с описаниями переменных Начальный нетерминал P определяет программу в целом: P → int R P
- 16. Семантические программы Программа 11. Переключение на заполнение таблицы переменных типа int (целочисленных), в таблице будут записываться
- 17. Семантические программы Программа 14. 1. Завершение формирования таблиц переменных. 2. Генерация в ОПС операций выделения памяти
- 18. Семантические программы Программа 15. Генерация в ОПС операций освобождения всех выделенных в процессе выполнения программы блоков
- 19. Динамическое выделение памяти Память скалярным переменным и паспортам массивов выделяется статически, а элементам массивов – динамически.
- 20. Выполнение операций m1 и m2 при работе интерпретатора m1 – требует двух операндов: 1) ссылка на
- 21. Грамматика с процедурами К ранее описанной грамматике для начального нетерминала P добавляется еще один вариант порождения
- 22. Правила грамматики после факторизации Вместо порождающих правил: A → aH := SZ | a (L) получим
- 23. Распределение памяти в программе с процедурами Интерпретатор, выполняя вычисления по ОПС, использует магазин для промежуточных величин,
- 24. Управление блоком памяти Интерпретатор, используя магазин для вычислений как в главной программе, так и после вызова
- 25. Структура блока памяти для вызова процедуры Блок начинает создаваться при выполнении оператора вызова. Содержимое блока: ●
- 26. Операции ОПС для вызова процедуры Пусть оператор вызова процедуры proc1 с n параметрами: proc1(S1, S2, .
- 27. Операции ОПС при выполнении процедуры После трансляции описания процедуры в ОПС первая операция должна быть: d
- 28. Обработка ошибок при трансляции и выполнении программы Уровни возможных ошибок: - синтаксическая ошибка при распознавании лексемы;
- 29. Ошибки при работе LL(1)-распознавателя: - если верхний символ в магазине – терминал, и при проверке на
- 31. Скачать презентацию