Системное программное обеспечение: Основы трансляции. Карпушин А.Н - 32 стр.

UptoLike

34
этом он может сообщить информацию о том, какую лексему следует ожидать.
В процессе разбора при возникновении ошибки может происходить «откат на-
зад», чтобы попытаться выполнить анализ текста на другой основе. И только
после того, как синтаксический анализатор успешно выполнит разбор очеред-
ной конструкции языка (обычно такой конструкцией является оператор исход-
ного языка), лексический анализатор помещает найденные лексемы в таблицу
лексем и таблицу идентификаторов и продолжает разбор дальше в том же по-
рядке.
Работа синтаксического и лексического анализаторов в варианте их парал-
лельного взаимодействия изображена в виде схемы на рисунке:
Вид представления информации после выполнения лексического анализа
целиком зависит конструкции компилятора. Но в общем виде ее можно пред-
ставить как таблицу лексем, которая в каждой строчке должна содержать ин-
формацию о виде лексемы, ее типе и, возможно, значении. Обычно такая таб-
лица имеет два столбца: первыйстрока лексемы, второйуказатель на ин-
формацию о лексеме, может быть включен и третий столбецтип лексем.
Важно отметить также, что для идентификаторов устанавливается связка таб-
лицы лексем с таблицей идентификаторов (например, это может отражаться не-
которым индексом, следующим после идентификатора за знаком : , а в реаль-
ном компиляторе все опять же определяется его реализацией).
Очевидно, что последовательный вариант организации взаимодействия
лексического анализа и синтаксического разбора является более эффективным,
так как он не требует организации сложных механизмов обмена данными и не
нуждается в повторном прочтении уже разобранных лексем. Этот метод явля-
ется и более простым. Однако не для всех языков программирования возможно
организовать такое взаимодействие. Это зависит в основном от синтаксиса язы-
ка, заданного его грамматикой. Большинство современных широко распростра-
ненных языков программирования, таких как С и Pascal, тем не менее позволя-
ют построить лексический анализ по более простому, последовательному мето-
ду, что дает ряд определенных преимуществ.
Принципы построения лексических анализаторов
Язык констант и идентификаторов в большинстве случаев является регу-
лярным, соответственно лексемы всех вышеперечисленных типов можно опи-
сать с помощью регулярных грамматик. Для грамматик этого класса, существу-