Připojit gramatiku - Affix grammar
![]() | tento článek potřebuje další citace pro ověření.Únor 2009) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
An připojit gramatiku je druh formální gramatika; používá se k popisu syntax jazyků počítačové jazyky pomocí přístupu založeného na tom, jak je přirozený jazyk obvykle popsán.[1]
Gramatická pravidla afixové gramatiky jsou pravidla a bezkontextová gramatika, s výjimkou určitých částí v neterminálech ( připevňuje ) se používají jako argumenty. Pokud se stejná přípona v pravidle vyskytne vícekrát, musí být její hodnota souhlasit, tj. musí to být všude stejné. V některých typech gramatiky připevnění jsou možné složitější vztahy mezi hodnotami připevnění.
Příklad
Můžeme popsat extrémně jednoduchý fragment angličtiny následujícím způsobem:
- Věta → Předmět Predikát
- Předmět → Podstatné jméno
- Predikát → Sloveso Objekt
- Objekt → Podstatné jméno
- Podstatné jméno → John
- Podstatné jméno → Mary
- Podstatné jméno → děti
- Podstatné jméno → rodiče
- Sloveso → jako
- Sloveso → lajky
- Sloveso → pomoc
- Sloveso → pomáhá
Tento bezkontextová gramatika popisuje jednoduché věty jako
- John má rád děti
- Mary pomáhá Johnovi
- děti pomáhají rodičům
- rodiče jako John
S více podstatnými jmény a slovesy a více pravidly pro zavádění dalších slovních druhů lze popsat velkou škálu anglických vět; jedná se tedy o slibný přístup k popisu syntaxe angličtiny.
Daná gramatika však také popisuje věty jako
- John má rád děti
- děti pomáhají rodičům
Tyto věty jsou špatné: v angličtině mají předmět a sloveso a gramatické číslo, který musí souhlasit.
Připojovací gramatika to může vyjádřit přímo:
- Věta → Předmět + číslo predikát+číslo
- Předmět + číslo → Podstatné jméno + číslo
- Predikát + číslo → Sloveso + číslo Objekt
- Objekt → Podstatné jméno + číslo
- Podstatné jméno + jednotné číslo → John
- Podstatné jméno + jednotné číslo → Mary
- Podstatné jméno + množný → děti
- Podstatné jméno + množný → rodiče
- Sloveso + jednotné číslo → lajky
- Sloveso + množný → jako
- Sloveso + jednotné číslo → pomáhá
- Sloveso + množný → pomoc
Tato gramatika popisuje pouze správné anglické věty, i když by se dalo argumentovat
- John má John rád
je stále nesprávný a měl by místo toho číst
- John má rád sám sebe
I to lze začlenit pomocí přípony, pokud jsou prostředky k popisu vztahů mezi různými hodnotami přípony dostatečně silné. Jak bylo uvedeno výše, tyto prostředky závisí na zvoleném typu připojovací gramatiky.
Typy
V nejjednodušším typu gramatiky afixů mohou afixy nabývat pouze hodnot z konečné domény a hodnoty afixů lze spojovat pouze prostřednictvím dohody, jako v příkladu. Použitím tohoto způsobu afixy zvyšují kompaktnost gramatik, ale nepřidávají expresivní sílu .
Dalším přístupem je umožnit příponám, aby jako hodnoty používaly libovolné řetězce a umožňovaly zřetězení přípon používat v pravidlech. Rozsahy povolených hodnot pro přípony lze popsat pomocí bezkontextových pravidel gramatiky. To vytváří formalizmus dvouúrovňové gramatiky, také známý jako Van Wijngaarden gramatiky nebo 2VW gramatiky. Ty byly úspěšně použity k popisu komplikovaných jazyků, zejména syntaxe jazyka Algol 68 programovací jazyk. Ukázalo se však, že i když s hodnotami připevnění lze manipulovat pouze řetězcovým zřetězením, tento formalismus je Turing dokončen; tedy i ty nejzákladnější otázky týkající se jazyka popsaného libovolnou 2VW gramatikou jsou nerozhodnutelný obecně.
Extended Affix Grammars, vyvinuté v 80. letech, jsou omezenější verzí stejné myšlenky. Byly použity hlavně k popisu gramatiky přirozeného jazyka, např. Angličtina.
Další možností je umožnit výpočet hodnot přípony kódem napsaným v nějakém programovacím jazyce. Byly použity dva základní přístupy:
- v atributové gramatiky, přípony (nazývané atributy) mohou nabývat hodnot z libovolných domén (např. celé číslo nebo reálná čísla, složité datové struktury) a lze specifikovat libovolné funkce, napsané v jazyce, který si zvolí, k popisu toho, jak jsou hodnoty přípony v pravidlech odvozeny od sebe navzájem .
- V CDL ( Jazyk popisu kompilátoru ) a jeho nástupce CDL2, vyvinutý v 70. letech, fragmenty zdrojového kódu (obvykle v montážní jazyk ) lze použít v pravidlech namísto běžných pravých stran, což umožňuje přímé vyjádření primitiv pro vstupní skenování a výpočty hodnot připevnění. Navrženo jako základ pro praktické použití překladač konstrukce, tento přístup byl použit k psaní překladačů a dalšího softwaru, např. A textový editor.
Reference
- ^ Koster, Cornelis HA. "Připojit gramatiky pro přirozené jazyky "Atributové gramatiky, aplikace a systémy. Springer, Berlín, Heidelberg, 1991.