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

С этих позиций коды лексем (дескрипторы) из конечных классов всегда одни и те же в различных программах для данного компилятора. Коды же лексем из бесконечных классов различны для разных программ и формируются всякий раз на этапе лексического анализа.

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

Числовые константы перед помещением их в таблицу могут переводиться из внешнего символьного во внутреннее машинное представление. Содержимое таблиц, в особенности таблицы идентификаторов, в дальнейшем пополняется на этапе семантического анализа исходной программы и используется на этапе генерации объектной программы.

В работе требуется составить программу лексического анализатора (сканер) входного текста для транслятора, которая бы

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

Производила бы отображение теста программы с комментариями и исключала бы их из текста, подлежащего трансляции. Отображала

дескрипторный текст.

2. Задание по работе.

2.1. Получить вариант задания у преподавателя.

2.2. В соответствии с выданным вариантом выполнить следующее:

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

2.2.2. Согласовать ТЗ с преподавателем.

2.2.3. Разработать программу-сканер на языках

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

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

2.2.5. Составить отчёт по работе и приложить к нему ТЗ.


3. Варианты заданий.

Вариант задания включает номер, состоящий из трёх цифр.

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


Таблица 1. Алфавит входного языка.

Алфавит
1 Латинский, строчные буквы
2 Латинский, заглавные буквы
3 Кириллица, строчные буквы
4 Кириллица, заглавные буквы
5 Латинский, строчные + заглавные
6 Кириллица, строчные + заглавные

Таблица 2. Ключевые слова.

Дополнительные ключевые слова
1 Описание циклов, массивов
2

Описание операторов перехода, структуры типа switch

3

Описание безусловных переходов,

описание функций


Таблица 3. Библиотечные функции.

Стандартные функции
1 sin, cos, tan, exp

2

sqrt, log, ln, nearby
3 abs, fact, code, sign

Например, 1-2-3 означает, что из первой таблицы необходимо выбрать первую строку, из второй таблицы - вторую строку, из третьей таблицы - третью строку.

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

Разделители : +, -, *, :, _, /, (, ), {, }, =, <, >, [, ], ;, “, ‘ , ‘,’ и про-

бел.

Идентификаторы должны начинаться с буквы, не включать в себя разделители, количество позиций не должно превышать 14.

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