Files
Polsl-Notes/PI/Ćwiczenia/2.Gramatyki.md

3.2 KiB
Raw Permalink Blame History

date
date
20221205115525
20221219115224

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}$$