ПОЛНОЕ ЗАДАНИЕ В ДЕМО ФАЙЛЕ,
ЧАСТЬ ДЛЯ ПОИСКА ДУБЛИРУЮ НИЖЕ
_
ВАРИАНТ 6
Вариант 6 Шкулин
1. Конечные автоматы
Задание: выполнить п. 1-3 ( 0 q - вход, * - выходное состояние).
ТЕСТ 6. Для алфавита a, b и таблицы переходов
1. построить НКА ( , , , , ) 0 M Q q F
2. построить регулярное выражение r , где L(r) L(M)
3. построить НКА М , где L(M) L(r)
a b
0 q 1 q Ø
1 q 2 q Ø
* 2 q Ø
0 q
, 1 q
2. Контекстно-свободные грамматики. Задание:
1. Для условного языка программирования построить праворекурсивную КСГ
на токенах
2. Считая, что на токенах задана LL(1)-КСГ, построить нисходящий
предиктивный рекурсивный анализатор
3. Продемонстрировать дерево разбора
Варианты условных языков программирования
6 Если Иначе
Ключ Вариант
Прервать
Целый
Длинный
Начало
Конец
+, -, *, /, (, ),
=, !=, <, >, :=
(рус.буква | _ )
(рус.буква | _ |
цифра)*
И
ИЛИ
НЕ
[*…*]
[[ - до
конца
строки
Варианты леворекурсивных грамматик
6
<program>
::= "" | <declarations> <compound_statement >
<compound_statement>
::= "Начало" <statement_sequence> "Конец"
<statement_sequence>
::= "" | <statement_sequence> <statement>
<expression>
::= <expression> "И" <term> | <expression> "ИЛИ" <term> | "НЕ" <factor>|
<expression> ">" <term> | <expression> "<" <term> | <expression> "=" <term>
| <expression> "!=" <term> | <expression> "+" <term> | <expression> "-" <term> | <term>
<term>
::= <term> "*" <factor> | <term> "/" <factor> | <factor>
<factor>
::= <identifier> | <num> | "(" <expression> ")"
<string_e>::=<string_e> "+" <string> | <string>
<assume>::= <identifier> ":=" <expression> | <identifier> "=" <string_e>
<declarations>
::= "" | <declarations> <standard_type> <identifier>
<standard_type>
::= "Целый" | "Длинный"
<block >
::= "Вариант" <identifier> <compound_statement> | <block> "Вариант" <identifier> <compound_statement>
<statement>
::= <assume>
| "Прервать"
| "Ключ" <block>
| "Если" "(" <expression> ")" <compound_statement> "Иначе" <compound_statement>