Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Правила, определяющие идентификатор, букву и цифру:
<идентификатор>::= <буква> {<буква> | <цифра>} <буква>::= A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p q | r | s | t | u | v | w | x | y | z <цифра>::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Правила, определяющие целые числа:
<целое>::= <двоичное> | <восьмеричное> | <десятичное> | <шестнадцатеричное> <двоичное>::= {/ 0 | 1 /} (B | b) <восьмеричное>::= {/ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 /} (O | o) <десятичное>::= {/ <цифра> /} [D | d] <шестнадцатеричное>::= <цифра> {<цифра> | A | B | C | D | E | F | a | b | c | d | e | f} (H | h)
Правила, описывающие действительные числа:
<действительное>::= <числовая_строка> <порядок> | [<числовая_строка>] . <числовая_строка> [порядок] <числовая_строка>::= {/ <цифра> /} <порядок>::= ( E | e )[+ | -] <числовая_строка>
Правила, определяющие структуру программы (вторая цифра варианта), представлены в таблице 5.5.
Таблица 5.5 – Структура программы
Правила, определяющие раздел описания переменных (третья цифра варианта) показаны в таблице 5.6.
Таблица 5.6 - Синтаксис команд описания данных
Правила, определяющие типы данных (четвертая цифра варианта) представлены в таблице 5.7.
Таблица 5.7- Описание типов данных
Правило, определяющее оператор программы (пятая цифра варианта).
<оператор>::= <составной> | <присваивания> | <условный> | <фиксированного_цикла> | <условного_цикла> | <ввода> | <вывода> Составной оператор описан в таблице 5.8.
Таблица 5.8 - Синтаксис составного оператора
Оператор присваивания описан в таблице 5.9.
Таблица 5.9 - Синтаксис оператора присваивания
Оператор условного перехода задан в таблице 5.10.
Таблица 5.10 - Синтаксис оператора условного перехода
Оператор цикла с фиксированным числом повторений описан в таблице 5.11.
Таблица 5.11 - Синтаксис оператора цикла с фиксированным числом повторений
Условный оператор цикла задан в таблице 5.12.
Таблица 5.12 - Синтаксис условного оператора цикла
Оператор ввода описан в таблице 5.13.
Таблица 5.13 - Синтаксис оператора ввода
Оператор вывода представлен в таблице 5.14.
Таблица 5.14 - Синтаксис оператора вывода
Многострочные комментарии в программе (шестая цифра варианта) определены в таблице 5.15. Индивидуальные номера вариантов представлены в таблице 5.16.
Таблица 5.15 – Синтаксис многострочных комментариев
Таблица 5.16 – Индивидуальные номера вариантов
6 Контрольные вопросы для самопроверки 1) Назовите основные способы описания синтаксиса языков программирования. 2) Дайте определение понятия «формальная грамматика». 3) Перечислите основные метасимволы, используемые в РБНФ. 4) Изобразите графические примитивы диаграмм Вирта. 5) Дайте определение понятию «компилятор». 6) Каждый ли компилятор является транслятором? 7) Назовите известные Вам компилируемые языки программирования. 8) Перечислите основные функции компилятора. 9) Назовите этапы компиляции. 10) Охарактеризуйте общую схему работы компилятора. 11) Что называется проходом компилятора? 12) Что называется лексемой языка программирования? 13) Какие задачи выполняет лексический анализатор программы? 14) Какой тип грамматик по классификации Хомского лежит в основе лексического анализа программы? 15) Перечислите основные группы лексем языков программирования. 16) Что представляет собой диаграмма состояний с действиями? 17) Расскажите алгоритм разбора цепочек по ДС с действиями. 18) Составьте диаграмму состояний с действиями для модельного языка. 19) Напишите функцию сканирования текста программы на модельном языке по ДС с действиями. 20) Каково назначение синтаксического анализатора программы? 21) Какой тип грамматик по классификации Хомского лежит в основе синтаксического анализа программы? 22) В чем сущность метода рекурсивного спуска? 23) Назовите необходимые условия применимости метода рекурсивного спуска. 24) Какие эквивалентные преобразования КС-грамматик Вам известны? 25) Расскажите алгоритм построения дерева нисходящего разбора для цепочек грамматики. 26) Какой вывод цепочки грамматики называется левосторонним? 27) В чем заключается специфика синтаксически управляемого перевода? 28) Перечислите основные задачи семантического анализатора. 29) Предложите один из возможных способов обработки описаний программы. 30) Запишите синтаксические правила модельного языка, дополненные процедурами семантического анализа программы. 31) Дайте сравнительную характеристику известных форм внутреннего представления программы. 32) Запишите правила перевода в ПОЛИЗ выражений и операторов модельного языка.
|
Последнее изменение этой страницы: 2019-06-09; Просмотров: 315; Нарушение авторского права страницы