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