Курсовая работа: Разработка программы-компилятора

3. Для хранения таблицы идентификаторов используется метод с использованием хэш-функций

Для хранения таблицы констант используется массив из записей Id_tab, содержащих следующие элементы:

Ссылка на элемент цепочки.

Номер.

Лексема.

В данном случае хэш-функция вычисляется по методу деления, т.е.

h (k): = {K/α}

где K - ключ записи, α - некоторый коэффициент

Для наиболее удобного распределения данных в таблице коэффициент α примем:

α= Li +2

где L - количество символов i-той строки, в которой хранится идентификатор.

Код K рассчитывается как сумма ASCII-кодов символов строки, в которой хранится идентификатор.

4. Для хранения таблицы кодов лексем используется массив из записей Code_tab, содержащих следующие элементы:

Номер.

Тип лексемы (C - константа, I - идентификатор, T - терминальный символ).

Номер в таблице констант, идентификаторов или терминальных символов.

Лексема.

Номер в таблице кодов лексем.

Для организации поиска используется последовательный метод.

2.2 Разработка автоматных грамматик для распознавания лексем

Автоматными или регулярными грамматиками называются грамматики, продукции которых имеют одну из двух форм:

Праволинейная

Леволинейная

A→aB

A→Ba

A→a

A→a

где a Î Т; А, В Î N

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

К-во Просмотров: 799
Бесплатно скачать Курсовая работа: Разработка программы-компилятора