Toggle menu
Toggle preferences menu
Toggle personal menu
Neprihlásený/á
Your IP address will be publicly visible if you make any edits.
Vytvorená stránka „Vysvetlíme si rôzne typy gramatík a pravidiel zápisu, Chomského hierarchiu a predstavíme si zložitejšie úlohy pre tvorbu gramatík a jazykov. {{Pojmová mapa}} {{#display_diagram:Drawio:Chomského hierarchia gramatík}} == Referencie == <references /> {{Téma|Oblast=Kategória:Formálne jazyky a automaty|Poradie=20}} Kategória:Formálne jazyky a automaty
 
Bez shrnutí editace
Riadok 3: Riadok 3:
{{Pojmová mapa}}
{{Pojmová mapa}}


{{#display_diagram:Drawio:Chomského hierarchia gramatík}}
== Chomského hierarchia gramatík ==
Gramatiky, ktoré sme si predstavili v predošlej téme mali zmiešané typy. Gramatiky ale môžeme rozlíšiť podľa ich spôsobu zápisu pravidiel do rôznych kategórií.{{#display_diagram:Drawio:Chomského hierarchia gramatík}}V roku 1956 Noam Chomsky položil základy pre túto hierarchiu [https://chomsky.info/wp-content/uploads/195609-.pdf vo svojej práci] ("Three models for the description of language"). Cieľom práce bolo skúmať spôsoby, akým by bolo možné vytvoriť formálnu gramatiku ktorá generuje všetky platné lingvistické konštrukcie v anglickom jazyku.
 
Dospelo sa k záveru, že jazyky majú vo všeobecnosti nasledovnú hierarchiu:
 
<ol start="0">
<li>typ: {{Štítok|emoji=🔃|text=rekurzívne enumerovateľné gramatiky|farba=hotpink|farba_textu=black}} - bez reštrikcií pre tvorbu pravidiel (s výnimkou, že ľavá strana / pred šípkou musí mať minimálne jeden terminálny alebo neterminálny symbol, inak by pravidlo nedávalo zmysel pretože by sme nevedeli čo sa má vôbec prepísať).
<li>Napr.: <math>aabbaa \rightarrow aS_0aS_0df</math> alebo <math>S_0livka \rightarrow aS_0dS_0fdaf</math>
<li>typ: {{Štítok|emoji=🧠|text=kontextové gramatiky|farba=goldenrod|farba_textu=black}} - ľavá strana pravidla musí obsahovať aspoň jeden neterminálny symbol a pravá strana musí obsahovať aspoň jeden neprázdny terminálny alebo neterminálny symbol.
<li>Používajú sa najčastejšie pre popis syntaxe programovacích jazykov.
<li>Napr.: <math>aS_0b \rightarrow aab</math>
<li>typ: {{Štítok|emoji=🔀|text=bezkontextové gramatiky|farba=mediumpurple|farba_textu=black}} - ľavá strana pravidla musí obsahovať práve jeden neterminálny symbol a pravá strana pravidla musí obsahovať aspoň jeden terminálny alebo neterminálny symbol.
<li>Napr.: <math>S_0 \rightarrow aS_0bcS_0a</math>
<li>typ: {{Štítok|emoji=➡️|text=regulárne gramatiky|farba=mediumseagreen|farba_textu=black}} - najviac reštriktívne gramatiky. Ľavá strana pravidla musí obsahovať práve jeden neterminálny symbol a pravá strana pravidla musí obsahovať maximálne jeden neterminálny symbol za ktorým ihneď nasleduje práve jeden terminálny symbol.
<li>Napr.: <math>S_0 \rightarrow aS_0</math> alebo <math>S_0 \rightarrow a</math>
</ol>
 
{{Box
| text = Možno si si všimol, že neterminálny symbol je zapísaný ako <math>S_0</math> namiesto iba <math>S</math>. Je to z toho dôvodu, aby sme jednoznačne vedeli odlíšiť tento neterminálny symbol od klasického písmena "S" ktoré nájdeme v abecede.
| emoji = ℹ️
}}


== Referencie ==
== Referencie ==

Verzia z 19:08, 19. október 2024

Vysvetlíme si rôzne typy gramatík a pravidiel zápisu, Chomského hierarchiu a predstavíme si zložitejšie úlohy pre tvorbu gramatík a jazykov.


Chomského hierarchia gramatík

Gramatiky, ktoré sme si predstavili v predošlej téme mali zmiešané typy. Gramatiky ale môžeme rozlíšiť podľa ich spôsobu zápisu pravidiel do rôznych kategórií.{{#display_diagram:Drawio:Chomského hierarchia gramatík}}V roku 1956 Noam Chomsky položil základy pre túto hierarchiu vo svojej práci ("Three models for the description of language"). Cieľom práce bolo skúmať spôsoby, akým by bolo možné vytvoriť formálnu gramatiku ktorá generuje všetky platné lingvistické konštrukcie v anglickom jazyku.

Dospelo sa k záveru, že jazyky majú vo všeobecnosti nasledovnú hierarchiu:

  1. typ: 🔃 rekurzívne enumerovateľné gramatiky - bez reštrikcií pre tvorbu pravidiel (s výnimkou, že ľavá strana / pred šípkou musí mať minimálne jeden terminálny alebo neterminálny symbol, inak by pravidlo nedávalo zmysel pretože by sme nevedeli čo sa má vôbec prepísať).
  2. Napr.: aabbaaaS0aS0df alebo S0livkaaS0dS0fdaf
  3. typ: 🧠 kontextové gramatiky - ľavá strana pravidla musí obsahovať aspoň jeden neterminálny symbol a pravá strana musí obsahovať aspoň jeden neprázdny terminálny alebo neterminálny symbol.
  4. Používajú sa najčastejšie pre popis syntaxe programovacích jazykov.
  5. Napr.: aS0baab
  6. typ: 🔀 bezkontextové gramatiky - ľavá strana pravidla musí obsahovať práve jeden neterminálny symbol a pravá strana pravidla musí obsahovať aspoň jeden terminálny alebo neterminálny symbol.
  7. Napr.: S0aS0bcS0a
  8. typ: ➡️ regulárne gramatiky - najviac reštriktívne gramatiky. Ľavá strana pravidla musí obsahovať práve jeden neterminálny symbol a pravá strana pravidla musí obsahovať maximálne jeden neterminálny symbol za ktorým ihneď nasleduje práve jeden terminálny symbol.
  9. Napr.: S0aS0 alebo S0a
ℹ️
Možno si si všimol, že neterminálny symbol je zapísaný ako S0 namiesto iba S. Je to z toho dôvodu, aby sme jednoznačne vedeli odlíšiť tento neterminálny symbol od klasického písmena "S" ktoré nájdeme v abecede.

Referencie