- •4. Таблица идентификаторов.
- •5. Кэш адресация
- •6. Формальные языки и грамматики.
- •7. Понятие языка
- •8. Запись грамматики в форме Бэкуса-Наура.
- •9. Запись правил грамматики с использованием метасимволов.
- •10. Запись правил гр-ки в граф-м виде
- •11. Классификация грамматик
- •12. Классификация языков.
- •Цепочки вывода
- •Дерево вывода
- •Правила задающие неоднозначность грамматик
- •Распознаватель
- •Задача разбора
- •Этапы семантического анализа
Распознаватель
Распознаватель – это специальный алгоритм, который позволяет определять принадлежность заданной цепочки символов данному языку.
Основные компоненты:
1. лента, содержащая входную цепочку символов, и считывающая головка, обозревающая очередной символ в этой цепочке;
2. устройство управления (УУ), которое координирует работу распознавателя (имеет конечное число состояний и огромную память);
3. внешняя память, которая используется для хранения информации.
Распознаватель работает с символами своего алфавита. В процессе работы вып-ся след-ие операции:
- чтение очередного символа из входной цепочки;
- сдвиг входной цепочки на определенное количество символов;
- доступ к внешней памяти для записи или чтения информации;
- преобразование информации в памяти;
- изменение состояния устройства управления.
Распознаватель работает по тактам. В начале такта состояние распознавателя определяется след-ми параметрами:
- содержимым входной цепочки символов и положением считывающей головки в ней;
- состоянием УУ;
- содержимым внешней памяти.
Для распознавателя задают начальное состояние (конфигурацию) и множество конечных состояний (конфигураций).
1. Считывающая головка обозревает начальный символ вх. цепочки символов;
2. Устройство управления находится в заданном начальном состоянии;
3. Внешняя память либо пустая, либо содержит строго определенную информацию.
Классификация распознавателей осуществляется по составляющим элементам:
1. по виду считывающего устройства:
- односторонние - допускают перемещение считывающей головки по ленте только в одном направлении;
- двусторонние.
2. по виду УУ:
- детерминированный - для каждой допустимой конфигурации, которая возникла на некотором шаге его работы, существует единственно возможная конфигурация в которую распознаватель перейдёт на следующем шаге;
- недетерминированный - имеет такие допустимые конфигурации, для которых существует конечное множество конфигураций возможных на следующем шаге работы.
3. по виду внешней памяти:
- без внешней памяти;
- ограниченная внешняя память;
- неограниченная внешняя память.
(Если автомат без внешней памяти, то используется память УУ)
Классификация распознавателей по типу языков:
1. Язык – с фразовой структурой
Распознаватель – двусторонние недетерминированные автоматы с неограниченной внешней памятью.
2. КЗ языки
Рапознаватель - двусторонние недетерминированные автоматы с линейноограниченной внешней памятью.
3. КС языки
Распознаватель – односторонние недетерминированные автоматы с магазинной памятью.
4. Регулярные языки
Распознаватель - односторонние недетерминированные автоматы без ВП, конечные автоматы.
Задача разбора
Заключается в следующем, что на основе имеющ. грамматики некоторого языка, необходимо построить распознаватель этого языка.
Задача разбора не решается для всех языков.
Задача разбора решается с помощью след. задач:
- определить смысловую нагрузку вх. цепочки символов;
- определить правила на основании которых построена цепочка;
- определить факт наличия ошибки, место и тип ошибки.