Изменения

Перейти к: навигация, поиск

Формальные грамматики

436 байт убрано, 06:35, 10 ноября 2011
еще несколько правок
{{Определение
|definition =
'''Язык грамматики''' — все последовательности терминалов, которые можно получить из начального символа по правилам вывода. <tex>L(\Gamma) = \{\omega\in \Sigma^{*}|S \Rightarrow^{*}\omega, \omega \in \Sigma^{*}\}</tex>.
}}
==Правильные скобочные последовательности==
<tex>\Sigma = \{(, )\}</tex>
<br/># <tex>\begin{array}{lcr}S \rightarrow (S)</tex>\\# <tex>S \rightarrow SS</tex>\\# <tex>S \rightarrow \epsilon\end{array}</tex><br/>
Вывод строки <tex>(()())</tex>:
==Арифметические выражения==
<tex>\Sigma = \{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, +, *, /, -, (, )\}</tex>
# <br/> <tex>\begin{array}{lcr}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\end{array}</tex> — любая цифра<br/>
Вывод строки <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>
143
правки

Навигация