1 / 16

Formální jazyky a gramatiky

Formální jazyky a gramatiky. Gramatika = generativní způsob určení jazyka Považujme nyní za základní symbol slovo , vyšší je věta . Struktura věty je definována určitými pravidly: pravidla věta. Formální jazyky a gramatiky.

maya
Télécharger la présentation

Formální jazyky a gramatiky

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Formální jazyky a gramatiky • Gramatika = generativní způsob určení jazyka • Považujme nyní za základní symbol slovo, vyšší je věta. • Struktura věty je definována určitými pravidly: pravidla věta

  2. Formální jazyky a gramatiky • Způsob zápisu gramatických pravidel: <definovaná jednotka>  definice • Lomené závorky naznačují, že jednotku je nutné dále specifikovat pomocí dalších jednotek • Gramatická pravidla použitá k definici předchozí věty: <věta>  <podmětná část> <přísudková část> <podmětná část >  <podstatné jméno> <podstatné jméno >  tom < přísudková část >  <sloveso> <předmětná část> < sloveso >  hraje <předmětná část>  <podstatné jméno> <podstatné jméno >  hokej

  3. Formální jazyky a gramatiky • Přestože se to zdá být snadné, formalizace přirozeného jazyka není vůbec jednoduchá Tom hraje golf. – Golf hraje Tom.  slovosled Tom s Jirkou …. Jirka s Tomem …  skloňování Tom má rád Evu. Eva má ráda Toma.  časování • I po překonání těchto obtíží budeme mít velký problém, protože každá gramatika umožňuje generovat gramaticky správné věty(syntakticky správné, přípustné), ale nezaručujesémantickou správnost Hokej hraje hokej. Tom jí polévku. – Polévka jí Toma.

  4. Gramatika • K definici gramatiky jsou potřebné neterminální symboly = symboly, které musí být dále definovány terminální symboly = prvotní symboly jazyka přepisovací pravidla = gramatická pravidla potřebná k tvorbě vět počáteční symbol = neterminál, od něhož odvozování začíná DEF: Gramatikou nazýváme čtveřici G=(N,T,P,S), kde N je konečná množina neterminálů T je konečná množina terminálů, přičemž NT=Ø SN je počáteční (startovní, iniciační) symbol a P je množina přepisovacích pravidel, která je konečnou podmnožinou množiny (NT)*N (NT)*x (NT)*

  5. Gramatika • Poznámky k definici gramatiky: • Zápis (NT)*N (NT)*x (NT)*znamená požadavek na alespoň jeden neterminál na levé straně pravidla • Konečnost množin je vyžadována proto,že nekonečné množiny jednak nemají praktický smysl, nebo je lze zakódovat • Užitečné konvence (BNF – Backus-Naurova forma /ALGOL/): • Neterminály označujeme velkými latinskými písmeny • Terminály označujeme malými latinskými písmeny • Slova složená z neterminálů a terminálů označujeme malými řeckými písmeny • Přepisovací pravidla se stejnou levou stranou, tj. 1, 2,…, kzapíšeme jako1| 2| … | k

  6. Příklady gramatik • Příklad 1: G = ({A}, {a, b}, P, A), přičemž P = { A  aAb | e } • Příklad 2: G = ({A, B, C}, {a, b, 0, 1}, P, B), přičemž P = { B  A | C A  aA | bA | e C  0C | 1C | e } • Příklad 3: G = ({A, B, C}, {a, b, 0, 1}, P, B), přičemž P = { B  AC A  a | b | aA | bA C  0 | 1 | 0C | 1C }

  7. Použití gramatiky • Základem generování vět jazyka jsou přepisovací pravidla • DEF: Buď G=(N, T, P, S) gramatika. Potom nad množinou (NT)* definujeme relaci derivace G následujícím způsobem: jestliže  (NT)* a  (NT)*, potom dané řetězce jsou v relaci G , tj.  G ,pokud v P existuje pravidlo . • Jestliže ,  (NT)* aplatí  G , potom říkáme, že  je možné v jednom kroku odvodit (derivovat) z  (přímo odvodit).

  8. Použití gramatiky • Příklad: G = ({A, B, C}, {a, b, 0, 1}, P, B), přičemž P = { B  AC A  a | b | aA | bA C  0 | 1 | 0C | 1C } AC G aAC … přímé odvození (A  aA) AC G aAC G aaAC … postupné odvození (AC2G aaAC ) B G AC G aAC G abC G ab1C G ab11C G ab111 (B6G ab111 )  G …… G ……. G  (*G  )

  9. Použití gramatiky • DEF: Nechť G=(N, T, P, S) je gramatika. Množinu řetězců (NT)* , které jsou odvoditelné z počátečního symbolu S, nazýváme množina větných forem. • Množina větných forem V je formálně definována jako V={| S *G  ,  (NT)*} • DEF: Nechť G=(N, T, P, S) je gramatika. Jazykem L(G) specifikovaným gramatikou Gnazýváme množinu řetězců, T*, které jsou odvoditelné z počátečního symbolu S. • Formálně tedy: L(G)={| S  *G ,  T*}

  10. Použití gramatiky • Poznámky k definici: • Věty jazyka L(G) jsou složeny pouze z terminálů. • Pokud je z kontextu zřejmé, kterou gramatiku G při odvozování máme na mysli, stačí psát  místo  G • Platí vztah 1 jazyk má 1 gramatiku? Nikoliv – i různé gramatiky mohou mít stejné odvozovací možnosti. • DEF: Gramatiky G1 a G2 jsou ekvivalentní, pokud platí L(G1)=L(G2)

  11. Příklad ekvivalentní gramatiky • Příklad: G1 = ({A, B, C}, {a, b,…,z}, P1, A), P1 = { A B | AC B  a C  a | b | …. | z } G2 = ({D, E}, {a, b,…,z}, P2, D), P2 = { D  a| aE E  EE | a | b | …. | z } • L(G1) = ?, L(G2) = ? • L(G1) = L(G2) = {všechna slova začínající písmenem a}

  12. Důsledky • Nezáleží tedy na druhu, tvaru či počtu přepisovacích pravidel, ale rozhodující jsou odvozovací možnosti. • Jelikož lze daný jazyk popsat vícero ekvivalentními gramatikami, je účelné gramatiky dále zkoumat nejen z hlediska toho, jaký jazyk popisují, ale i jakým způsobem ho popisují. • Vhodným omezením tvaru přepisovacích pravidel je možné gramatiky rozdělit do tříd a v návaznosti na to klasifikovat i příslušné jazyky.

  13. Klasifikace gramatik • Noam Chomski – podle tvaru přepisovacích pravidel • DEF: Nechť G=(N,T,P,S) je gramatika. Potom G je • gramatika typu O (neomezená), jestliže na přepisovací pravidla neklademe žádná omezení • gramatika typu 1 (kontextová), jestliže každé přepisovací pravidlo z P má tvar , kde  (NT)* N (NT)*,  (NT)+ a platí |||  | • gramatika typu 2 (bezkontextová), jestliže každé přepisovací pravidlo z P má tvar A, A N,  (NT)* • gramatika typu 3 (regulární), jestliže každé přepisovací pravidlo z P má tvar AbB nebo Ab,kde AN, BN, bT

  14. Doplnění prázdného slova • Někdy potřebujeme specifikovat jazyk obsahující prázdné slovo i pro kontextové a regulární gramatiky (výše uvedené definice by to vylučovaly) • Tradičně se reší přidáním nového počátečního symbolu S1 a dvou přepisovacích pravidel S1 S, S1 e • V takovémto případě budeme i nadále mluvit o gramatice kontextové či regulární

  15. Hierarchie gramatik • Z definice jednotlivých typů gramatik je automaticky zřejmé, že: • Každá regulární gramatika G je bezkontextová • Každá bezkontextová gramatika G je kontextová • Každá kontextová gramatika G je gramatikou bez omezení

  16. Hierarchie jazyků • DEF: Jazyk nazýváme regulární, jestliže je možné jej generovat regulární gramatikou. • DEF: Jazyk nazýváme bezkontextový, jestliže je možné jej generovat bezkontextovou gramatikou. • DEF: Jazyk nazýváme kontextový, jestliže je možné jej generovat kontextovou gramatikou. • DEF: Jazyk nazýváme bez omezení, jestliže je možné jej generovat gramatikou bez omezení. Zřetelně platí: 0 1 2 3

More Related