3.2 KiB
date
| date | ||
|---|---|---|
|
Notacja Chomsky'ego:
G=<V,\Sigma,P,\sigma>, gdzie:
- V - symbole terminalne
\Sigma- metaalfabet - alfabet pomocniczy - symbole pomocnicze- P - lista produkcji
\sigma- Głowa gramatyki
abc aaaabcccccc aabbbc
\begin{gathered}a^{n}b^{m}c^{k} &n,m,k\geqslant1\end{gathered}
G_{1}=<V_1,\Sigma_1,P_1,\sigma_1>
V_1 = \{a,b,c\}
\Sigma_1=\{\alpha,\beta,\gamma\}
P_1=\begin{cases}\alpha \rightarrow a\alpha \\ \alpha \rightarrow a\beta \\ \beta \rightarrow b\beta \\ \beta \rightarrow b\gamma \\ \gamma \rightarrow c\gamma \\ \gamma \rightarrow c \end{cases}
\sigma_1 = \alpha
\begin{gathered}a^{n}b^{m}c^{n} &n,m\geqslant1\end{gathered}
G_{2}=<V_2,\Sigma_2,P_2,\sigma_2>
V_2 = \{a,b,c\}
\Sigma_2=\{\alpha,\beta\}
P_2=\begin{cases}\alpha \rightarrow a\alpha c \\ \alpha \rightarrow a\beta c \\ \beta \rightarrow b \beta \\ \beta \rightarrow b \end{cases}
\sigma_2 = \alpha
\begin{gathered}a^{n}b^{n}c^{n} &n\geqslant 1 \end{gathered}
G_{3}=<V_2,\Sigma_2,P_2,\sigma_2>
V_3 = \{a,b,c\}
\Sigma_3=\{\alpha,\beta\}
P_3=\begin{cases}\alpha \rightarrow abc \\ \alpha \rightarrow a\alpha \beta c \\ b\beta \rightarrow bb \\ c\beta \rightarrow \beta c \end{cases}
\gamma = \alpha
Przykłady
abbccc w G_1
\alpha \rightarrow^2 a\beta \rightarrow^3 ab\beta \rightarrow^4 abb\gamma \rightarrow^5 abbc\gamma \rightarrow^5 abbcc\gamma \rightarrow^6 abbccc
Drzewo gramatyki
abbccc
||||||
|||||γ
||||γ
|||γ
||β
|β
α
aaabbbccc a^nb^nc^n
\alpha \rightarrow^2 a\alpha\beta c \rightarrow^2aa\alpha\beta c\beta c\rightarrow^1 aaabc\beta c\beta cc \rightarrow^{4,4} aaab\beta c\beta cc \rightarrow^4 aaab\beta\beta cc \rightarrow^3 aaabb\beta ccc\rightarrow^3 aaabbbccc
Notacja BNF:
V={a,b,c}
\Sigma = \{<\alpha>,<\beta>\}
P = \begin{gathered}\{<\alpha>::= a<\alpha>c|a<\beta>c \\ <\beta>::= a \}\end{gathered}
Nazwy zmiennych:
$$\begin{gathered} V={a..z,A..Z,0..9} \ \Sigma = {,,} \ P={::=||\ ::=a|..|z|A|..|Z \ ::=0|..|9 } \ \sigma = \end{gathered}$$
Adres IP
V={0..9,.}
Σ = {<IP>, <bajt>, <l1>,<l2>,<l3>, <0-9>
P={<IP>::=<bajt>.<bajt>.<bajt>.<bajt>
<bajt>::=<l1>|<l2>|<l3>
<l1>::=<0-9>
<0-9>::=0|<1-9>
<l2>::=<1-9><0-9>
<1-9>::=1|..|9
<l3>::=1<0-9><0-9>|2<0-4><0-9>|25<0-5>
<0-4>::=0|1|2|3|4
<0-5>::=5|<0-4>}
σ=<IP>
SQL INSERT
INSERT INTO tabela (kol1,kol2,kol3) VALUES (23,NULL,-125);
$$\begin{align}
V &= \left{ INSERT, INTO, VALUES, NULL, a-z, 0-9, \ , \ , ; ,(,) \right}
\
\Sigma &= \left{ , , , , , ,,,<lista\ wartosci>, \right}
\
P &=\begin{cases}
::= \ ::= INSERT\ INTO\ \ ::= || \ \ ::= a|..|z \ ::= 0|..|9 \ ::= ();|VALUES (<lista\ wartosci>); \ <lista\ wartosci>::=|<lista\ wartosci>, \ ::=NULL| \ ::=, \ ::=)VALUES(|,, \end{cases} \ \sigma &=
\end{align}$$