Terminální a neterminální symbol
Terminální a neterminální symboly jsou prvky používané v teorii formální jazyků pro popis jazyka pomocí formální gramatiky.
Gramatiky používají pro popis jazyka přepisovací pravidla, která obsahují terminální a neterminální symboly.
Terminální symboly (krátce terminály) jsou symboly, které už nemohou být dále přepisovány.[Pozn 1] Slova generovaná gramatikou obsahují pouze terminální symboly.
Neterminální symboly (krátce neterminály) jsou pomocné symboly, které se používají v přepisovacích pravidlech pro popis struktury jazyka. Můžeme považovat za reprezentaci syntaktických kategorií. Někteří autoři je nazývají proměnné (anglicky variables).
Konvence a pravidla
V teorii formálních jazyků se pro neterminály obvykle používají velká písmena latinské abecedy, a pro terminály malá písmena. V Backusově–Naurově formě (BNF) se názvy terminálů ohraničují špičatými závorkami, např. <příkaz>
; v rozvinuté Backusově–Naurově formě (EBNF) se naopak terminální symboly píšou do uvozovek nebo apostrofů, např. 'while'
, "!="
.
Preterminální symboly
Název preterminální symbol se někdy používá pro neterminální symboly, které se přímo přepisují na jednotlivé terminální symboly. Při zpracování přirozeného jazyka mohou být preterminály slovní druhy nebo morfologické značky. Preterminální symboly mohou tvořit rozhraní mezi syntaktickou i lexikální analýzou – z pohledu syntaktické analýzy jsou to terminály, z pohledu lexikální analýzy neterminály.
Odkazy
Poznámky
- To úplně neplatí pro transformační gramatiky (gramatiky typu 0), ve kterých se mohou přepisovat řetězce terminálů a neterminálů obsahující aspoň jeden neterminál; v ostatních druzích gramatik se však vždy přepisuje neterminální symbol.