Содержание
- 2. Почему ? A^nВ^nС^n - не КСЯ int A^n; int main ( ) { A^n = 2
- 3. Примеры контекстных условий
- 4. Каждый объект должен быть описан Языки разделяются на языки с умолчанием (например, Бейсик) и языки без
- 5. Вывод Необходимо хранить в некоторой таблице идентификаторы, которые объявлены в программе При обработке каждого очередного объявления
- 6. Область использования объекта должна быть согласована с областью его действия int i; int main ( )
- 7. Вывод 1. Семантическая таблица должна иметь иерархическую структуру 2. В качестве иерархической структуры можно использовать дерево
- 8. Типы формальных и фактических параметров функций и их количество должны совпадать diuble a[ 1000]; int len;
- 9. Вывод Функции хранятся в семантическом дереве вместе с информацией о параметрах Параметры функции являются локальными в
- 10. В программе разрешаются приведения типов данных (явные и неявные) double x, y, z , h [
- 11. Вывод При трансляции операций необходимо проверять типы данных операндов этой операции Для каждой операции необходимо контролировать
- 12. В ЯП допускается использование именованных констант int index = 100; const int maxIndex = 100000; index
- 13. В ЯП допускается описание пользовательских типов typedef long long int LL; LL ww, zz; // верно:
- 14. Вывод В таблице необходимо хранить признак типа для каждого идентификатора С типом можно объявлять данные, по
- 15. Семантика & синтаксис Семантика ЯП – это контекстные условия ЯП. Она фактически неразрывно связана с синтаксисом.
- 16. Рефакторинг синтаксиса Требования контекстной зависимости могут привести к корректировке синтаксического уровня. Пример: D -> D, id
- 17. Рефакторинг синтаксиса Различия в семантике диктуют разделение синтаксической конструкции Р на две : D -> D,
- 18. Лабораторная работа № 7 Тема : Анализ контекстных условий ЯП Перечислить типы данных реализуемого ЯП (например,
- 19. Переходим к реализации семантического уровня ПРОБЛЕМЫ: Как реализовать и хранить семантические типы? Что хранить в узле
- 20. Диаграмма классов Контекстная зависимость семантики и синтаксиса приводит к необходимости связи между соответствующими классами. Необходимость связи
- 21. Диаграмма классов (варианты 1 и 2) Классы (вариант 1): Лексический анализатор Синтаксический анализатор Семантическое дерево Семантика
- 22. Диаграмма классов (вариант 2)
- 23. Семантические типы enum TypeObject {ObjConst=1, // константа ObjLabel, // метка ObjVar, // простая переменная ObjTypeVar, //
- 24. Информация в вершине семантического дерева struct Node { LEX id; // идентификатор объекта TypeObject DataType; //
- 25. Класс «семантическое дерево» class Tree { private: Node * n; // данные таблицы Tree * Up,
- 26. Функции поиска и дополнения класса «семантическое дерево» class Tree { ….. void SetLeft (Node * data);
- 27. Особенности реализации семантического дерева: пустые вершины
- 28. Лексичестор пропро
- 29. Семантические подпрограммы Семантика языка программирования - это контекстные условия, то есть некоторые условия, связанные с обрабатываемым
- 30. Семантика описаний Цель - занести объект в таблицу со всеми параметрами
- 31. Семантика выражений Цель – вычислить тип
- 32. Семантика выражений Цель – вычислить тип и проверить допустимость операции
- 33. Семантика присваиваний Цель – проверить допустимость операции
- 34. Семантика функций Цель при объявлении функции – занести поддерево функции в текщее семантическое дерево
- 35. Семантика классов и структур Как и для функций цель оьработки семантики структур - занести поддерево в
- 36. Семантика классов и структур Дерево классов и структур имеет сложную структуру. Пример: // типы struct s
- 37. Семантика классов и структур
- 38. Семантика классов и структур Дерево классов и структур имеет сложную структуру вообще говоря, дерево становится потоковым
- 39. Семантика классов и структур Для данных указатели строятся аналогично s a, b; // ссылки на правых
- 40. Лабораторные работы 7, 8, 9 Общая задача – реализовать семантический контроль Работа 7 – проектирование Работы
- 41. Лабораторная работа № 7 Тема : Анализ контекстных условий ЯП Перечислить типы данных реализуемого ЯП (например,
- 42. Лабораторная работа № 8 Тема - реализация создания семантического дерева. Создать заголовочный файл семантического класса. Реализовать
- 43. Лабораторная работа № 9 Тема – полный семантический контроль. Реализовать функции контроля использования объектов. Обратить внимание
- 44. Сообщения о семантических ошибках и нейтрализация семантических ошибок
- 45. Ошибка «неверное приведение типов» Возможен повтор сообщения об ошибке при дальнейшей обработке выражения. Нейтрализация: 1. внести
- 46. Ошибка «нет описания идентификатора» Возможен повтор сообщения об ошибке, если забыли описать идентификатор, но правильно использовали.
- 48. Скачать презентацию