Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Лексический разбор бинарных операций, как правило, ограничивается уже описанным алгоритмом генерации адресного (условного) кода. Следует добавить лишь, что в сгенерированные адреса (ссылки) необходимо записать команду соответствующую операции. Условно эти команды обозначены в таблице
+ | - | / | * | ** |
com | sub | div | mult | exp |
Таким образом, в адрес с условным кодом 3 будет записана операция сложения – com, в адрес с условным кодом 3 – операция вычитания – sub и т.д.
Аналогично на этапе лексического анализа генерируются адреса и происходит наполнение этих адресов соответствующими кодами других символов – скобки, знак окончания операторов - “;”, лексические знаки <, >, ≤, ≥, = =,:=, и т.д.
Ключевые слова вместе с идентификаторами резервируют определенные адреса в таблице символов перед наполнением этой таблицы идентификаторами и их атрибутами. Поэтому идентификаторы не могут называться именами, которыми идентифицированы ключевые слова – while, if, do, и т.д.
В заключении отметим, что фаза сканера или лексического анализа может быть совмещена с фазой синтаксического анализа, когда множество правил вывода P в грамматике ограниченно. Совмещение этапов лексического и синтаксического анализа позволяет повысить скорость трансляции, по крайней мере, на время одного прохода. С точки зрения проверки синтаксиса совмещение фаз не нарушает полноты синтаксического анализа. Как правило, это совмещение оправданно в интерпретаторах. Отсутствие самостоятельной фазы лексического анализа не исключает, однако, фазы очистки мусора.
Дата публикования: 2014-11-04; Прочитано: 281 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!