ВУЗ:
Составители:
18
Грамматикой, генерирующей язык L = { a
n
b
m
| n, m ≥ 0} является G
0
= (
{ a, b}, {S, A, B}, P, S), где P = { S
→
AB, A
→
aA, A
→
ε, B
→
bB, B
→
ε }
Начав с символа S и применяя последовательно по одному из правил
замены нетерминала в выводимой строке можно, например, генерировать
строку aaabb:
S
⇒
AB
⇒
aAB
⇒
aaAB
⇒
aaaAB
⇒
aaaB
⇒
aaabB
⇒
aaabbB
⇒
aaabb
Каждая строка, которую можно вывести из начального символа,
называется сентенциальной формой. Предложение – сентенциальная форма,
содержащая только терминалы. Терминалы будем обозначать строчными
(маленькими) буквами, а нетерминалы – прописными (большими).
Как правило, предложения языка можно генерировать с помощью
более чем одной грамматики. Две грамматики, генерирующие один и тот же
язык, называют эквивалентными
. С точки зрения разработчика транслятора
одна грамматика может быть гораздо удобней другой.
Контрольные вопросы
1. Что определяет синтаксис языка?
2. В чем отличие синтаксиса языка от семантики языка?
3. Что такое грамматика и как она задается?
4. Чем различаются терминальные и нетерминальные символы языка?
5. Чем определяется возможность появления того
или иного символа в
предложении языка?
6. Что такое «начальный символ» и чем он отличается от других
символов языка?
7. Задана грамматика с порождающими правилами:
S -> (S)
S -> SS
S -> ε ,
где S - начальный символ, ε - пустая строка
Принадлежат ли языку, генерируемому данной грамматикой
следующие строки (аргументировать ответ, в случае принадлежности,
доказать с помощью вывода
):
18
n m
Грамматикой, генерирующей язык L = { a b | n, m ≥ 0} является G0 = (
{ a, b}, {S, A, B}, P, S), где P = { S → AB, A → aA, A → ε, B → bB, B → ε }
Начав с символа S и применяя последовательно по одному из правил
замены нетерминала в выводимой строке можно, например, генерировать
строку aaabb:
S ⇒ AB ⇒ aAB ⇒ aaAB ⇒ aaaAB ⇒ aaaB ⇒ aaabB ⇒ aaabbB ⇒ aaabb
Каждая строка, которую можно вывести из начального символа,
называется сентенциальной формой. Предложение – сентенциальная форма,
содержащая только терминалы. Терминалы будем обозначать строчными
(маленькими) буквами, а нетерминалы – прописными (большими).
Как правило, предложения языка можно генерировать с помощью
более чем одной грамматики. Две грамматики, генерирующие один и тот же
язык, называют эквивалентными. С точки зрения разработчика транслятора
одна грамматика может быть гораздо удобней другой.
Контрольные вопросы
1. Что определяет синтаксис языка?
2. В чем отличие синтаксиса языка от семантики языка?
3. Что такое грамматика и как она задается?
4. Чем различаются терминальные и нетерминальные символы языка?
5. Чем определяется возможность появления того или иного символа в
предложении языка?
6. Что такое «начальный символ» и чем он отличается от других
символов языка?
7. Задана грамматика с порождающими правилами:
S -> (S) S -> ε ,
S -> SS где S - начальный символ, ε - пустая строка
Принадлежат ли языку, генерируемому данной грамматикой
следующие строки (аргументировать ответ, в случае принадлежности,
доказать с помощью вывода):
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »
