Формальные грамматики — различия между версиями
Filchenko (обсуждение | вклад) (еще несколько правок) |
Filchenko (обсуждение | вклад) (фикс определений) |
||
| Строка 18: | Строка 18: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
| − | + | ('''<tex>\beta</tex> выводится из <tex>\alpha</tex> за один шаг''' (<tex>\alpha \Rightarrow \beta</tex>): | |
# <tex>\alpha=\alpha_1\alpha_2\alpha_3</tex> | # <tex>\alpha=\alpha_1\alpha_2\alpha_3</tex> | ||
# <tex>\beta=\beta_1\beta_2\beta_3</tex> | # <tex>\beta=\beta_1\beta_2\beta_3</tex> | ||
| Строка 26: | Строка 26: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
| − | + | '''<tex>\beta</tex> выводится из <tex>\alpha</tex> за ноль или более шагов''' (<tex>\alpha \Rightarrow^* \beta</tex>):<br/> | |
<tex>\exists \gamma_1, \gamma_2,...,\gamma_n : \alpha \Rightarrow \gamma_1 \Rightarrow \gamma_2 \Rightarrow ... \Rightarrow \gamma_n \Rightarrow \beta</tex> | <tex>\exists \gamma_1, \gamma_2,...,\gamma_n : \alpha \Rightarrow \gamma_1 \Rightarrow \gamma_2 \Rightarrow ... \Rightarrow \gamma_n \Rightarrow \beta</tex> | ||
}} | }} | ||
Версия 06:36, 10 ноября 2011
Содержание
Определения
| Определение: |
| Нетерминал — элемент, представляющий некоторую сущность языка (например, часть формулы) и не имеющий конкретного значения. |
| Определение: |
| Терминал — элемент алфавита . |
| Определение: |
| Формальная грамматика — способ описания формального языка, представляющий собой четверку , где — алфавит, — набор нетерминалов, — начальный символ грамматики, — набор правил вывода |
| Определение: |
( выводится из за один шаг ():
|
| Определение: |
| выводится из за ноль или более шагов (): |
| Определение: |
| Язык грамматики — все последовательности терминалов, которые можно получить из начального символа по правилам вывода. . |
Обозначения
- Нетерминалы обозначаются заглавными буквами латинского алфавита.
- Терминалы обозначаются строчными буквами из начала латинского алфавита.
- Последовательности из терминалов (слова) обозначают строчными буквами из конца латинского алфавита.
- Последовательности из терминалов и нетерминалов обозначаются строчными буквами греческого алфавита.
Примеры грамматик
Правильные скобочные последовательности
Вывод строки :
Арифметические выражения
Вывод строки :
Левосторонний вывод для такой же строки:
Литература
- Хопкрофт Д., Мотвани Р., Ульман Д. — Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.)