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


Описание интерпретатора


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

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

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

Дескриптор — это пара вида: (<тип лексемы>, <указатель>),

где <тип лексемы> — это, как правило, числовой код класса лексемы, кото­рый означает, что лексема принадлежит одному из конечного множества клас­сов слов, выделенных в языке программирования;

       <указатель> — это может быть либо начальный адрес области основной памяти, в которой хранится адрес этой лексемы, либо число, адресующее эле­мент таблицы, в которой хранится значение этой лексемы.

Количество классов лексем (т.е. различных видов слов) в языках програм­мирования может быть различным. Наиболее распространенными классами являются:

    - идентификаторы;

- служебные (ключевые) слова;

- разделители;

   - константы.

Все они присутствуют в данной программной модели.

Могут вводиться и другие классы.


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