Читаем Системное программное обеспечение. Лабораторный практикум полностью

2. Задание по лабораторной работе (номер варианта и полное описание своего варианта).

3. Грамматика входного языка в одном из трех возможных видов:

• форма Бэкуса—Наура;

• форма с метасимволами;

• графическая форма.

4. Описание выбранного способа организации таблицы идентификаторов с обоснованием сделанного выбора.

5. Описание лексического анализатора и выбранного метода его взаимодействия с синтаксическим анализатором.

6. Граф переходов или иное описание конечного автомата лексического анализатора.

7. Обоснование выбора класса КС-грамматик для построения синтаксического анализатора.

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

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

10. Описание используемого метода порождения результирующего кода.

11. Описание используемого метода оптимизации.

12. Информация об организации построенного компилятора, его разбиении на проходы, количество проходов в компиляторе.

13. Выводы по проделанной работе.

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

15. Текст программы компилятора.

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

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

Допускается для построения лексического и (или) синтаксического анализаторов использовать автоматизированные методы построения распознавателей (например на основе программ LEX и YACC) [2, 3, 7, 27, 35]. В этом случае не требуется приводить граф переходов конечного автомата (для лексического анализатора) и описание синтаксического анализатора.

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

<p>Задание на курсовую работу</p>

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

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

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

• входная программа начинается ключевым словом prog (program) и заканчивается ключевым словом end.;

• входная программа может быть разбита на строки произвольным образом, все пробелы и переводы строки должны игнорироваться компилятором;

• текст входной программы может содержать комментарии любой длины, которые должны игнорироваться компилятором (вид комментария задан в варианте задания);

• входная программа должна представлять собой единый модуль, содержащий линейную последовательность операторов, вызовы процедур и функций не предусматриваются;

• должны быть предусмотрены следующие варианты операторов входной программы:

– оператор присваивания вида <переменная>:=<выражение>;

– условный оператор вида if <выражение> then <оператор> либо if <выражение> then <оператор> else <оператор>;

– составной оператор вида begin… end;

– оператор цикла, предусмотренный вариантом задания;

• выражения в операторах могут содержать следующие операции (минимум):

– арифметические операции сложения (+) и вычитания (-);

– операции сравнения «меньше» (<), «больше» (>), «равно» (=);

– логические операции И (and), ИЛИ (or), НЕ (not);

– дополнительные арифметические операции, предусмотренные вариантом задания;

• операндами в выражениях могут выступать идентификаторы (переменные) и константы (тип допустимых констант указан в варианте задания);

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

• должны учитываться два предопределенных идентификатора InpVar и Compi 1 eTest, смысл которых будет ясен из приводимого далее описания выходного языка.

Приоритет операций исполнитель работы должен выбрать самостоятельно (приоритет операций учитывается в грамматике входного языка). Для изменения приоритета операций должны использоваться круглые скобки.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных