Программная модель 32-разрядного микропроцессора фирмы Motorola


Описание интерпретатора - часть 4


При этом необходимо предварительно проверить: не хранится ли там уже значение данной лексемы, т.е. необходимо проводить просмотр элементов табли­цы. Если ее там нет, то значение помещается в таблицу. При этом таблица должна допускать расширение. Опять же для уменьшения времени досту­па к элементам таблицы она должна быть специальным образом органи­зована, при этом должны использоваться специальные методы ускоренного поиска элементов.

После проведения успешной идентификации лексемы формируется ее об­раз — дескриптор, он помещается в выходной поток лексического анализато­ра. В случае неуспешной идентификации формируются сообщения об ошибках в написании слов программы.

В ходе лексического анализа осуществляются и другие виды лексичес­кого контроля, в частности, проверяется парность скобок, допустимость и правильность записи способов адресации.

Выходной поток с лексического анализатора в дальнейшем поступает на вход синтаксического анализатора. Имеется две возможности их связи:

- раздельная связь, при которой выход лексического анализатора формируется полностью и затем передается синтаксическому ана­лизатору;

- нераздельная связь, когда синтаксическому анализатору требуется очередной образ лексемы, он вызывает лексический анализатор, ко­торый генерирует требуемый дескриптор и возвращает управление синтаксическому анализатору.

Второй вариант характерен для однопроходных трансляторов, который и реализуется в данной модели. Таким об­разом, процесс лексического анализа может быть достаточно простым, но в смысле времени компиляции оказывается довольно долгим. Больше половины времени, затрачиваемого компилятором на ком­пиляцию, приходится на этап лексического анализа. Несмотря на это, данный способ позволяет успешно решать задачи, поставленные пользователем перед программой.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 




Начало  Назад  Вперед