Originální titul:
The Definitive ANTLR Reference
Jazyk: angličtina
Rok vydání: 2010
ISBN: 978-0-9787392-5-6
Autor:
Terrence Parr (nar. 1964), profesor informatiky působící na University of San Francisco, autor parser generátoru ANTLR.
Kniha The Definitive ANTLR Reference je základní referenční příručkou ke generátoru rozpoznávačů bezkontextových jazyků a kompilátorů, nazvaného ANTLR – ANother Tool for Language Recognition.
ANTLR je generátor parserů, tedy program, který generuje kód pro překlad ze zadaného jazyka do prosté datové struktury. Parser generátory lze použít k sestavení překladačů a interpreterů pro všechny typy domain-specific languages (DSLs). Čím sofistikovanější aplikace se vyvíjí, tím více se mezi vývojáři uplatňují DSLs. Nástroj ANTLR představuje jednu z možností, jak generovat parsery DSLs.
Velkým pozitivem příručky je to, že autor knížky je současně autorem a hlavním designérem nástroje ANTLR. Tedy knížka není pouhým převyprávěním dokumentace (nebo hůře tutoriálu) bez zřejmé přidané hodnoty.
Definice gramatik pomocí generátoru ANTLR
Knížka je rozdělena do tří částí. V první úvodní je čtenář seznámen se základy generátoru. Druhá část je samotnou referenční příručkou ke generátoru ANTLR, obsahující v úvodu popis jednotlivých prvků metajazyka pro definici gramatiky vytvářeného jazyka spolu s popisem definic pravidel (neterminálů) a tokenů (terminálů). Gramatické elementy mají různé atributy a při jejich rozpoznávání je možné spouštět různé akce napsané v cílovém programovacím jazyce, do kterého je parser generován.
Rozpoznávání gramatických pravidel pomocí LL(*) parsování
Dále je popsána tvorba stromové gramatiky a vytváření abstraktních syntaktických stromů (AST) z pravidel. ANTLR umožňuje rozpoznávat kromě proudů tokenů i proudy AST stromů. V poslední části knihy je popsáno LL(*) parsování, použité jako strategie, na které je ANTLR postaven. Nejdříve je vysvětleno, jak se odlišuje LL(*) parsování od klasického LL(k) parsování a za pomoci jakých postupů ho generátor rozšiřuje. Také jsou vysvětleny jazykové hranice použití této strategie. Tyto hranice lze naštěstí překonat pomocí takzvaných syntaktických a sémantických predikátů.
Doporučení knihy
Kniha se tak stává účinným návodem na tvorbu vlastního rozpoznávače textu nebo programovacího jazyka. Největší zásluhu na její čitelnosti má i fakt, že není psána zbytečně přehnaným akademickým stylem (i když autor ze svého titulu by na to měl svaté právo), ale lidskou, velice čtivou a přesto věcnou formou.
Obsah příručky The Definitive ANTLR Reference
- Getting Started with ANTLR
- The Nature of Computer Languages
- A Quick Tour for the Impatient
- ANTLR Grammars
- ANTLR Grammar-Level Options
- Attributes and Actions
- Tree Construction
- Tree Grammars
- Generating Structured Text with Templates and Grammars
- Error Reporting and Recovery
- LL(*) Parsing
- Using Semantic and Syntactic Predicates
- Semantic Predicates
- Syntactic Predicates