Rozebrat

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 25. prosince 2021; kontroly vyžadují 2 úpravy .

Syntaktická analýza (nebo parsování , slangová  parsování ← angličtina  parsing ) v lingvistice a informatice  je proces porovnávání lineární sekvence lexémů (slov, tokenů) přirozeného nebo formálního jazyka s jeho formální gramatikou . Výsledkem je obvykle strom syntaxe (strom syntaxe). Obvykle se používá ve spojení s lexikální analýzou .

Analyzátor ( slang  parser ← anglicky  parser ) je program nebo část programu, který provádí analýzu.

Během analýzy je zdrojový text převeden do datové struktury , obvykle stromu, která odráží syntaktickou strukturu vstupní sekvence a je vhodná pro další zpracování.

Výsledkem syntaktické analýzy je zpravidla syntaktická struktura věty, prezentovaná buď ve formě stromu závislostí , nebo ve formě stromu komponent , nebo ve formě nějaké kombinace první a druhé metody reprezentace. .

Rozsah

Cokoli, co má „ syntaxi “, se hodí k automatické analýze.

Typy algoritmů

Zotavení z chyb

Nejjednodušší způsob, jak reagovat na neplatný vstupní řetězec tokenů, je ukončit analýzu a zobrazit chybovou zprávu. Často je však užitečné najít co nejvíce chyb při jednom pokusu o analýzu. Takto se chovají překladatelé nejběžnějších programovacích jazyků.

Obslužná rutina chyb analyzátoru má tedy následující úkoly:

Níže jsou popsány nejznámější strategie obnovy chyb.

Obnova v panickém režimu

Když dojde k chybě, analyzátor přeskočí vstupní tokeny jeden po druhém, dokud není nalezen jeden ze speciálně definované sady synchronizačních tokenů . Obvykle jsou takové tokeny oddělovače, například: ; , ) nebo } . Sadu synchronizačních tokenů musí určit vývojář analyzovaného jazyka. S touto strategií obnovy se může stát, že bude přeskočen významný počet znaků bez kontroly dalších chyb. Tato strategie obnovy je nejsnáze implementovatelná.

Obnova na úrovni fráze

Někdy, když dojde k chybě, může analyzátor provést místní opravu vstupního toku, aby mohl pokračovat. Například před středníkem, který odděluje různé příkazy v programovacím jazyce, může analyzátor uzavřít závorky, které ještě nebyly uzavřeny. To je složitější na návrh a implementaci, ale v některých situacích může fungovat výrazně lépe než zotavení z paniky. Tato strategie je přirozeně bezmocná, pokud ke skutečné chybě došlo dříve, než ji analyzátor detekoval.

Bug productions

Znalost nejčastějších chyb umožňuje rozšířit gramatiku jazyka o produkce, které generují chybné konstrukce. Když se taková produkce spustí, zaprotokoluje se chyba, ale analyzátor běží normálně.

Vývojové nástroje analyzátoru

Jednotlivé fáze vývoje a konstrukce překladačů lze automatizovat a provádět pomocí počítače.

Zde jsou některé z nejznámějších nástrojů pro vývoj analyzátorů [2] :

Viz také srovnání generátorů parserů .

Viz také

Poznámky

  1. Tim Jones M. Získávání informací z internetu pomocí jazyka Ruby. (22. května 2014). Staženo 13. prosince 2019. Archivováno z originálu 13. prosince 2019.
  2. Ela Kumar. zpracování přirozeného jazyka. - IK International Pvt Ltd, 2011. - S. 100. - ISBN 978-93-80578-77-4 .

Literatura

Odkazy