АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Построение лексических анализаторов

Читайте также:
  1. Анализ бизнес-процесса(ов) предприятия и построение моделей
  2. Виды лексических трансформаций.
  3. Вычисление приведенного момента инерции II-ой группы звеньев и построение его диаграммы.
  4. Вычисление приведенного момента сил и построение его диаграммы
  5. Глава 5. Построение отношений консультирования
  6. Задание на проектирование и пример расчета (Построение и расчет холодильного цикла)
  7. ЗАДАЧИ НА ПОСТРОЕНИЕ ДЕРЕВА РЕШЕНИЙ
  8. И Я приглашаю вас взяться за построение этого будущего прямо Сейчас. Прямо в Этот Момент.9. Как религиозные убеждения формируют гражданское законодательство
  9. Изгиб балок. Построение эпюр перерезывающих сил и изгибающих моментов. Определение размеров поперечного сечения различной формы. Расчет допускаемой нагрузки (задача № 4)
  10. Картограмма. Построение картограммы.
  11. Общее представление о сенсорно- перцептивных процессах(СПП). Ощущения: классификация. Строение анализаторов. Основные закономерности.
  12. Определение безубыточного объема продаж, зоны безопасности, запаса финансовой прочности с построением графика безубыточности

При построении лексических анализаторов конечные автоматы используют для распознавания лексем второго типа (базовых понятий языка). Эти понятия можно описать в рамках самых простых, регулярных грамматик и предложить для них эффективную технику разбора. Отделение сканера от синтаксического анализатора позволяет также сократить время распознавания лексем, так как при этом появляется возможность использования оптимизированных ассемблерных команд, специально предназначенных для сканирования строк.

Алфавит автомата лексического анализатора – все множество однобайтовых (ASCII) или двухбайтовых (Unicode) символов. При записи правил обычно используются обобщающие нетерминалы вида «Буквы», «Цифры». В процессе распознавания может формироваться описываемый объект, например, литерал или идентификатор.

Пример. Распознаватель целых чисел. Синтаксическая диаграмма синтаксиса языка описывается синтаксической диаграммой (см. рисунок 6).

1 – начало разбора; 2 – распознан знак; 3 – целое; К – завершение разбора

Рисунок 6 – Синтаксическая диаграмма

По диаграмме строим таблицу переходов (см. таблицу 6), обозначая состояние ошибки символом «E». В таблице переходов указываем подпрограммы обработки, которые должны быть выполнены при осуществлении указанного перехода. При выполнении этих подпрограмм формируются указанные значения.

Таблица 6 – Таблица переходов

  Знак Цифра Разделитель Другие
  2, А1 3, А2 Е, Д1 Е, Д4
  Е, Д2 3, А2 Е, Д3 Е, Д4
  К, А3 3, А2 К, А3 Е, Д4

а) Подпрограммы обработки:

A0: Инициализация: Целое:= 0; Знак_числа:= «+».

А1: Знак_числа:= Знак

А2: Целое:= Целое*10 + Цифра

А3: Если Знак_числа = «-» то Целое:= -Целое Все-если

б) Диагностические сообщения:

Д1: «Строка не является десятичным числом»;

Д2: «Два знака рядом»;

Д3: «В строке отсутствуют цифры»,

Д4: «В строке встречаются недопустимые символы»

Обозначим: S – строка на входе автомата; Ind – номер очередного символа; q – текущее состояние автомата; Table – таблица, учитывающая символы завершения и другие символы.

Тогда алгоритм сканера-распознавателя можно представить следующим образом.

Ind:= 1

q:= 1

Выполнить А0

Цикл-пока q ¹ «Е» и q ¹ «К»

Если S [ Ind ] = «+» или S [ Ind ] = «-»,

то j:= 1

иначеЕсли S [ Ind ] ³ «0»и S [ Ind ] £ «9»,

то j:= 2,

иначе j:= 3


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)