Hierarchia Chomsky’ego: Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja przejrzana] |
Usunięta treść Dodana treść
m drobne techniczne |
m drobne redakcyjne |
||
Linia 1:
'''Hierarchia
Hierarchia składa się z czterech klas:
* [[język regularny|języki typu 3
* [[język bezkontekstowy|języki typu 2
* [[język kontekstowy|języki typu 1
* [[
Język należy do danej klasy wtedy i tylko wtedy, gdy jest możliwe zbudowanie [[gramatyka formalna|gramatyki formalnej]], która generuje dany język, a której reguły nie wykraczają poza ograniczenia dla danej klasy.
== Języki regularne (typu 3) ==
'''Język regularny''' to język, który można wygenerować za pomocą '''gramatyki liniowej''' – takiej, która po lewej stronie reguł ma pojedyncze nieterminale, po prawej zaś słowa zawierające co najwyżej jeden nieterminal (jeśli znajduje się on na początku lub na końcu każdego słowa
: <math>A\rightarrow \epsilon</math>
: <math>A\rightarrow a</math>
: <math>A\rightarrow abc</math>
: <math>A\rightarrow B</math>
: <math>A\rightarrow aB</math>
: <math>A\rightarrow abcB</math>
* Gramatyki liniowe są równoważne [[deterministyczny automat skończony|automatom skończonym]].
Linia 22:
== Języki bezkontekstowe (typu 2) ==
'''Język bezkontekstowy''' to język, który można wygenerować za pomocą '''gramatyki bezkontekstowej''', która po lewej stronie reguł ma pojedyncze nieterminale, po prawej zaś dowolne słowa. Np.:
: <math>A\rightarrow aBc</math>
: <math>A\rightarrow BC</math>
: A także dowolne reguły gramatyk regularnych.
* jeśli dla danego języka istnieje gramatyka bezkontekstowa, istnieje też równoważna gramatyka bezkontekstowa w [[postać normalna Chomsky'ego|postaci normalnej
* Gramatyki bezkontekstowe są równoważne [[Automat ze stosem|niedeterministycznym automatom ze stosem]].
== Języki kontekstowe (typu 1) ==
'''Język kontekstowy''' to język, który można wygenerować za pomocą '''gramatyki kontekstowej''', której produkcje są postaci <math>\alpha A \beta \rightarrow \alpha \gamma \beta</math>, gdzie α i β są dowolnymi słowami, A nieterminalem, γ
: <math>AB\rightarrow CDB</math>
: <math>AB\rightarrow CdEB</math>
: <math>ABcd\rightarrow abCDBcd</math>
: <math>B\rightarrow b</math>
Dodatkowo pozwala się na regułę postaci <math>S\rightarrow \epsilon</math>, tzn. z symbolu startowego w słowo puste, ale tylko w przypadku jeżeli słowo startowe nie występuje po prawej stronie żadnej reguły.
Linia 44:
== Języki rekurencyjnie przeliczalne (typu 0) ==
'''Język rekurencyjnie przeliczalny''' to język, dla którego istnieje gramatyka typu 0, której produkcje są postaci <math>\alpha \rightarrow \beta
* Gramatyki typu 0 są równoważne [[maszyna Turinga|maszynom Turinga]].
== Zależności między klasami ==
Linia 52:
== Znaczenie ==
Hierarchia
[[Kategoria:Języki formalne]]
|