Формальные грамматики — различия между версиями
Filchenko (обсуждение | вклад) (Исправил пример - псп) |
Filchenko (обсуждение | вклад) (Исправил пример - арифметические выражения) |
||
Строка 46: | Строка 46: | ||
===Арифметические выражения=== | ===Арифметические выражения=== | ||
− | <tex>\Sigma = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, +, *, /, -, (, )}</tex> | + | <tex>\Sigma = \{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, +, *, /, -, (, )\}</tex> |
+ | # <tex>S \rightarrow S O S</tex> - два выражения, соединенные действием | ||
+ | # <tex>S \rightarrow (S) </tex> - выражение, взятое в скобки | ||
+ | # <tex>S \rightarrow 0</tex> - ноль | ||
+ | # <tex>S \rightarrow DN</tex> - число, у которого первая цифра не ноль | ||
+ | # <tex>O \rightarrow + | - | * | /</tex> - действие | ||
+ | # <tex>D \rightarrow 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9</tex> - цифра, не являющаяся нулем | ||
+ | # <tex>N \rightarrow NN | \epsilon</tex> - любая последовательность из цифр, возможно пустая | ||
+ | # <tex>N \rightarrow 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9</tex> - любая цифра | ||
− | <tex>S \rightarrow | + | Вывод строки <tex>2+2*2</tex>: <tex>S \rightarrow SOS \rightarrow SOSOS \rightarrow 2OSOS \rightarrow 2O2OS \rightarrow 2O2O2 \rightarrow 2+2O2 \rightarrow 2+2*2</tex> |
− | <tex>S \rightarrow | + | Левосторонний вывод для такой же строки: <tex>S \rightarrow SOS \rightarrow 2OS \rightarrow 2+S \rightarrow 2+SOS \rightarrow 2+2OS \rightarrow 2+2*S \rightarrow 2+2*2</tex> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Версия 04:08, 10 ноября 2011
Определение: |
Нетерминал - элемент, представляющий некоторую сущность языка (например часть формулы) и не имеющий конкретного значения. |
Определение: |
Формальная грамматика - это способ описания формального языка, представляющий собой четверку алфавит, - набор нетерминалов, - начальный символ грамматики, - набор правил вывода | , где -
Определение: |
Терминал - элемент фалфавита |
Определение: |
| ( выводится из за один шаг):
Определение: |
Определение: |
Язык грамматики - все последовательности терминалов, которые можно получить из начального символа по правилам вывода. |
Примеры грамматик
Правильные скобочные последовательности
Вывод строки
:Арифметические выражения
- - два выражения, соединенные действием
- - выражение, взятое в скобки
- - ноль
- - число, у которого первая цифра не ноль
- - действие
- - цифра, не являющаяся нулем
- - любая последовательность из цифр, возможно пустая
- - любая цифра
Вывод строки
:Левосторонний вывод для такой же строки: