Лабораторные работы по Теории вычислительных процессов и структур
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: рефераты по психологии, банк рефератов 5 баллов
| Добавил(а) на сайт: Антипов.
1 2 3 4 | Следующая страница реферата
Министерство образования Российской Федерации
Саратовский государственный технический университет
ЛАБОРАТОРНАЯ РАБОТА №1
Лексический анализ входного языка транслятора лабораторная работа по курсу «Теория вычислите- льных процессов и структур» для студентов специальности 220400 (ПВС)
Составил доцент кафедры ПВС
Сайкин А.И.
Саратов, 2001 г.
Введение
Данная лабораторная работа предназначается для студентов
специальности ПВС изучающих «Теорию вычислительных процессов и структур».
Лабораторная работа рассчитана на 4 аудиторных часа и 6 часов
самостоятельной работы по составлению
программы, изучение литературы и составление отчёта.
Объект исследования - трансляторы с алгоритмических языков программирования. Процесс трансляции с алгоритмического языка можно условно разбить на три этапа: лексический анализ, грамматический разбор и генерацию машинного кода. В данной работе рассматривается задача построения лексического анализатора входного текста транслятора.
Цель работы состоит в составлении программы (сканера) производящей лексический анализ текста, соответствующего заданному алфавиту и грамматике алгоритмического языка.
Программа составляется на языках Паскаль и С++ по выбору студента в среде WINDOWS.
1. Содержание работы.
Этап лексического анализа текста исходной программы выделяется в самостоятельный этап работы транслятора, как с методической целью, так и с целью сокращения времени компиляции программы. Последнее достигается за счёт того, что исходная программа в виде последовательности символов, преобразуется на этапе лексической обработки к некоторому стандартному виду, что облегчает дальнейший анализ.
Под лексическим анализом понимают процесс предварительной обработки
исходной программы, на котором основные лексические единицы программы -
лексемы: ключевые слова, идентификаторы, метки, константы приводятся к
единому формату и заменяются условными кодами или ссылками на
соответствующие таблицы, а коментарии исключаются из текста программы.
Результатом лексического анализа является список лексем-дескрипторов и
таблицы. В таблицах хранятся значения выделенных в программе лексем.
Дескриптор- это пара вида: ( . < указатель>), где - это, как правило, числовой код класса лексемы, который означает, что лексема принадлежит одному из конечного множества классов слов, выделенных в языке программирования;
- это может быть либо начальный адрес области основной памяти, в которой хранится адрес этой лексемы, либо число, адресующее элемент таблицы, в которой хранится значение этой лексемы.
Количество классов лексем в языках программирования может быть различным. Наиболее распространёнными классами являются: идентификаторы; служебные (ключевые) слова; разделители; константы.
Могут вводиться и другие классы. Это обусловлено в первую очередь той
ролью, которую играют различные виды слов при написании исходной программы
и переводе её в машинную программу. При этом наиболее предпочтительным
является разбиение всего множества слов, допускаемых в языке
программирования, на такие классы, которые бы не пересекались между собой.
В общем случае все выделяемые классы являются либо конечными (ключевые
слова, разделители и др.) - классы фиксированных для данного языка
программирования слов, либо
бесконечными или очень большими (идентификаторы, константы, метки)- классы
переменных для данного языка программирования слов.
С этих позиций коды лексем (дескрипторы) из конечных классов всегда одни и те же в различных программах для данного компилятора. Коды же лексем из бесконечных классов различны для разных программ и формируются всякий раз на этапе лексического анализа.
В ходе лексического анализа значения лексем из бесконечных классов помещаются в таблицы соответствующих классов. Конечность таблиц объясняет ограничения, существующие в языках программирования на длины и соответственно число используемых в программе идентификаторов и констант.
Числовые константы перед помещением их в таблицу могут переводиться из внешнего символьного во внутреннее машинное представление. Содержимое таблиц, в особенности таблицы идентификаторов, в дальнейшем пополняется на этапе семантического анализа исходной программы и используется на этапе генерации объектной программы.
В работе требуется составить программу лексического анализатора
(сканер) входного текста для транслятора, которая бы
составляла таблицы и производила бы кодирование идентификаторов, разделителей и констант. Производила бы проверку правильности написания
ключевых слов операторов, стандартных функций и использование служебных
символов.
Производила бы отображение теста программы с комментариями и исключала бы
их из текста, подлежащего трансляции. Отображала
дескрипторный текст.
2. Задание по работе.
2.1. Получить вариант задания у преподавателя.
Рекомендуем скачать другие рефераты по теме: реферат по бжд, банк курсовых работ бесплатно.
Категории:
1 2 3 4 | Следующая страница реферата