Parr, Terence: The Definitive ANTLR Reference

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

  1. Getting Started with ANTLR
  2. The Nature of Computer Languages
  3. A Quick Tour for the Impatient
  4. ANTLR Grammars
  5. ANTLR Grammar-Level Options
  6. Attributes and Actions
  7. Tree Construction
  8. Tree Grammars
  9. Generating Structured Text with Templates and Grammars
  10. Error Reporting and Recovery
  11. LL(*) Parsing
  12. Using Semantic and Syntactic Predicates
  13. Semantic Predicates
  14. Syntactic Predicates

Máte co říct k této knize? Vyjádřete se v diskusi, komentujte příspěvek.