ANTLR

ANTLR
Fejlesztő Terence Parr és mások
Első kiadás 1992 február
Legfrissebb stabil
kiadás
4.11.1 (2022. szeptember 4.)[1]
Legfrissebb fejlesztői kiadásismeretlen +/-
Programozási nyelv Java
Platform platformfüggetlen
Állapot aktívan fejlesztik
Kategória compiler-compiler
Licenc BSD licenc
Az ANTLR weboldala

Az ANTLR (ejtsd: entler) a számítógépes nyelvfelismerés szakterületén használatos szoftver. LL(*) típusú szintaktikus elemzőket állít elő. AZ ANTLR az 1989-ben kifejlesztett Purdue Compiler Construction Tool Set (PCCTS) utódja. Fejlesztője Terence Parr, a San Franciscói Egyetem professzora.

Az ANTLR bemenete egy nyelvet leíró formális nyelvtan, kimenete pedig egy ezen nyelvet felismerő véges automata forráskódja. Az ANTLR a következő kimeneti programnyelveket támogatja: Ada, ActionScript, C, C#, Java, JavaScript, Objective-C, Perl, Python, és Ruby. A nyelvet környezetfüggetlen nyelvtan írja le a kiterjesztett Backus–Naur forma segítségével.

Az ANTLR alkalmas nyelvi elemzők, lexikális elemzők, faelemzők, és kombinált nyelvi-lexikális elemzők generálására. Az elemzők képesek automatikusan szintaxisfákat alkotni, amelyek tovább vizsgálhatók a faelemzők segítségével. Az ANTLR mindegyik célra egységes leírónyelvet biztosít, amely egyszerűsíti a használatát.

Alapértelmezés szerint az ANTLR beolvassa a megadott nyelvtant, és létrehozza a nyelvtanhoz tartozó elemzőt (egy olyan programot, amely hibát jelez, ha a bemenete nem felel meg a nyelvtan szintaxisának). Ha nincsenek szintaktikus hibák, az elemző egyszerűen üzenet nélkül kilép. A nyelvtani elemekhez azonban akciókat is lehet kapcsolni. Az akciók ugyanazon a nyelven íródnak, amelyen az elemző, ezek a kódrészletek a megfelelő helyeken beépülnek az elemző kódjába. Akciók segítségével szimbólumtáblákat építhetünk és ellenőrizhetünk, vagy fordítók esetében a célnyelven utasításokat adhatunk.

Az ANTLR 3 BSD licenc alatt kiadott szabad szoftver. A korábbi verziók a közkincs részei.[2]

Míg maga az ANTLR szabadon hozzáférhető, a felhasználói dokumentációja nem az. Az ANTLR kézikönyv (The Definitive ANTLR Reference) kereskedelemben kapható. A szabadon hozzáférhető dokumentáció néhány bevezetőre, példakódra és alapvető API-leírásra korlátozódik.

Az Eclipse fejlesztőkörnyezethez több ANTLR nyelvtant támogató plugin elérhető: a bizonyos feltételek mellett ingyenes ANTLR Studio, illetve a SourceForge-ról letölthető 2 és 3 pluginek.

ANTLR 4

Az ANTLR v4 verziója helyesen kezeli a balrekurziót (kivéve az indirekt balrekurziót, tehát az olyan nyelvtani szabályokat, amelyekben egy x szabály y-ra hivatkozik, és az y pedig x-re)[3] valamint rugalmasan támogatja az akciókat és attribútumokat. Az akciók a nyelvtantól elkülönülten definiálhatók, ami nagyban megkönnyíti a kész elemzők több célnyelvhez való illesztését (az adott elemző nem csak egy nyelvhez generálható).

Az ANTLR egy elemzőgenerátor, amely strukturált szöveg- vagy bináris fájlok olvasására, feldolgozására, végrehajtására vagy fordítására használható. Oktatási intézményekben és az iparban is használják különféle nyelvek, eszközök és keretrendszerek készítésére. A Twitter keresője ANTLR elemzőt használ a keresőfrázisok elemzésére, és naponta kétmilliárd keresést szolgál ki. Az Apache Hive és Pig – a Hadoop rendszer adattárház és analízis rendszerei – rendszerek nyelvei mind ANTLR-t használnak. A Lex Machina rendszer szintén ANTLR alapú elemzőt tartalmaz, amellyel jogi szövegeket elemez. Az Oracle ANTLR-t alkalmaz az SQL Developer IDE-ben és a migrációs eszközeiben. A NetBeans IDE a C++ forráskódot ANTLR-rel elemzi. A HQL nyelv értelmezője a Hibernate objektum-relációs leképező keretrendszerében ANTLR segítségével készült.

Néhány lehetséges feladat az ANTLR számára: konfigurációs fájl-olvasók, régi programkódok konverterei, wiki jelölőnyelvek megjelenítői, JSON elemzők, objektum-relációs adatbázis-megfeleltetések, 3D vizualizációk leírása, Java forráskód kiegészítése profilozó információkkal (domén-specifikus nyelvek).

Jegyzetek

  1. Release 4.11.1, 2022. szeptember 4. (Hozzáférés: 2022. október 2.)
  2. Archivált másolat. [2011. július 18-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. december 15.)
  3. Archivált másolat. [2014. július 14-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. július 9.)

Irodalom

  • Parr, Terence (May 17, 2007), The Definitive Antlr Reference: Building Domain-Specific Languages (1st ed.), Pragmatic Bookshelf, pp. 376, ISBN 0-9787392-5-6, <http://www.pragprog.com/titles/tpantlr/the-definitive-antlr-reference>. Hozzáférés ideje: 2012-06-03 Archiválva 2021. november 18-i dátummal a Wayback Machine-ben
  • Parr, Terence (December, 2009), Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages (1st ed.), Pragmatic Bookshelf, pp. 374, ISBN 978-1-934356-45-6, <http://www.pragprog.com/titles/tpdsl/language-implementation-patterns> Archiválva 2021. október 29-i dátummal a Wayback Machine-ben

További információk

  • ANTLR honlap
  • ANTLRWorks
  • ANTLR Studio
  • ANTLR For Delphi Target
  • ANTLR tutorial - University of Birmingham
  • Az elméleti háttérről lásd az ANTLR honlapját, pl. T. J. Parr, R. W. Quong, ANTLR: A Predicated-LL(k) Parser Generator, Software—Practice and Experience, Vol. 25(7), 789–810 (July 1995)

Fordítás

Ez a szócikk részben vagy egészben az ANTLR című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Kapcsolódó szócikkek

  • JavaCC
  • SableCC
  • Coco/R
  • Modular Syntax Definition Formalism
  • Parboiled (Java)
  • Informatika Informatikai portál • összefoglaló, színes tartalomajánló lap