Реферат: Лабораторные работы по Теории вычислительных процессов и структур
разработать программу грамматического разбора исходного
текста на входном языке.
5. Во всех случаях предусмотреть сообщения пользователю о
лексических и синтаксических ошибках.
6. Разработать и описать объектный псевдокод.
7. Составить и утвердить техническое задание на программу генерации.
8. Разработать программу генерации объектного псевдокода.
9. Составить отчёт по работе с описанием всех пунктов задания,
представить работающую программу.
3. Варианты заданий.
Вариант задания состоит из трёх цифр. Каждая цифра означает соответствующую строку таблицах 1, 2 и 3. В соответствии с этим, оператор присвоения может содержать указанные математические функции из указанных строк таблиц.
Таблица 1.
-
№ Функция 1 acos 2 asin 3 atan 4 sin 5 cos 6 sinh 7 cosh
Таблица 2.
-
№ Функции 1 exp 2 abs 3 mod 4 sqrt 5 log 6 ln 7 log10
Таблица 3.
-
№ Функции 1 tan 2 tanh 3 cotan 4 cotanh 5 trunk 6 round 7 nearbyint
Подробные сведения о перечисленных функциях можно найти в справочнике программиста по С/C++.
4. Методические указания.
В любом языке программирования обязательно существуют ограничения. Поэтому следует сразу оговорить, что переменые обозначаются идентификаторами, начинающимися с латинской буквы и несодержащими разделителей. Следует оговорить максимально допустимую длину для идентификатора. Следует оговорить приоритет в выполнении арифметических операций, который должен совпадать с общепринятым.
Лексический анализ, грамматический разбор и генерация псевдокода могут быть совмещены в одной программе, но методически их лучше реализовать по отдельности: вначале лексический анализ, затем грамматический разбор и после этого, когда все ошибки будут устранены - генерация машинного кода.
Но в любом случае написание программы является творческим процессом и всё, что говорилось ранее, носит только рекомендательный характер.
5. Контрольные вопросы.
1. Каков приоритет в выполнении арифметических операций в
выражении?
2. Что такое лексема?
3. Каково назначение лексического анализа?
4. Каково назначение грамматического разбора?
5. Как определяется контекстно-свободная грамматика?
6. Что такое «чевёрки»?
7. Зачем используют псевдокод?
8. В чём особенность объектного кода?