Лексический анализ программ. Организация работы сканера
Лексический анализ программ – один из основных этапов (фаз) трансляции программ – выделение в исходной программе элементарных единиц языка, таких как идентификаторы, константы, ключевые слова, символы операций, разделители и др. Лексический анализ завершается преобразованием выделенных единиц языка в некоторую унифицированную форму (обычно числовую). Выделенные элементарные единицы языка – лексемы.
Часть транслятора, которая выполняет лексический анализ, называется сканером (лексический анализатор). Лексический анализатор (сканер) должен распознать идентификаторы, константы, ключевые слова, символы операций, разделители и т.д. Перечень лексем, которые необходимо распознать, зависит от синтаксиса и семантики конкретного языка. Лексический анализатор воспринимает текст исходной программы как очень длинную цепочку литер, которые составляют алфавит языка и набор символов конкретной модели ЭВМ. К основным функциям сканера относят:
1) распознавание элементарных синтаксических единиц языка и замена их лексемами
2) исключение из текста исходной программы избыточной информации (комментариев, пустых строк, несущественных пробелов)
3) формирование информационных таблиц, содержащих данные в распознанных лексемах, в частности, таблицы имен и таблицы констант
Таким образом, сканер – программа, входными данными для которой служит цепочка литер, представляющих текст исходной программы, а результатом является последовательность лексем. Каждая лексема представляется двумя переменными – {код ( тип) ,спецификатор}.
Код лексемы обычно представляет собой числовой код (целое число), однозначно характеризующий разновидность лексем.
Спецификатор лексемы является необязательным параметром и служит для уточнения конкретной лексемы, например, если лексема – идентификатор, то спецификатор – имя идентификатора.
По мере распознавания лексем информация о них накапливается в соответствующих информационных таблицах. Например, таблица имен может выглядеть следующим образом:
После того как информация о лексемах будет размещена в конкретной таблице, в качестве спецификатора каждой лексемы может служить указание на соответствующий элемент информационной таблицы.
Исходники:
Опубликовал Kest
February 12 2010 20:49:58 ·
0 Комментариев ·
12906 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.