Реферат: Лабораторные работы по Теории вычислительных процессов и структур

Министерство образования Российской Федерации

Саратовский государственный технический университет


ЛАБОРАТОРНАЯ РАБОТА №1


Лексический анализ входного языка транслятора

лабораторная работа по курсу «Теория вычислите-

льных процессов и структур» для студентов

специальности 220400 (ПВС)


Составил доцент кафедры ПВС

Сайкин А.И.


Саратов, 2001 г.

Введение

Данная лабораторная работа предназначается для студентов специальности ПВС изучающих «Теорию вычислительных процессов и структур». Лабораторная работа рассчитана на 4 аудиторных часа и 6 часов самостоятельной работы по составлению

программы, изучение литературы и составление отчёта.

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

входного текста транслятора.

Цель работы состоит в составлении программы (сканера) производящей лексический анализ текста, соответствующего заданному алфавиту и грамматике алгоритмического языка.

Программа составляется на языках Паскаль и С++ по выбору студента в среде WINDOWS.


1. Содержание работы.

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

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

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

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

где <тип лексемы>- это, как правило, числовой РєРѕРґ класса лексемы, который означает, что лексема принадлежит РѕРґРЅРѕРјСѓ РёР· конечного множества классов слов, выделенных РІ языке программирования;

<указатель>- это может быть либо начальный адрес области РѕСЃРЅРѕРІРЅРѕР№ памяти, РІ которой хранится адрес этой лексемы, либо число, адресующее элемент таблицы, РІ которой хранится значение этой лексемы.

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

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

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

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

константы.

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

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 391
Бесплатно скачать Реферат: Лабораторные работы по Теории вычислительных процессов и структур