ANTLR

A Wikipédiából, a szabad enciklopédiából
ANTLR
Fejlesztő Terence Parr és mások
Első kiadás 1992 február
Legfrissebb stabil kiadás 3.4 (2011. július 18.) +/-
Legfrissebb fejlesztői kiadás ismeretlen +/-
Programozási nyelv Java
Platform platformfüggetlen
Állapot aktívan fejlesztik
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.[1]

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[szerkesztés | forrásszöveg szerkesztése]

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)[2] 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[szerkesztés | forrásszöveg szerkesztése]

Irodalom[szerkesztés | forrásszöveg szerkesztése]

További információk[szerkesztés | forrásszöveg szerkesztése]

Fordítás[szerkesztés | forrásszöveg szerkesztése]

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.

Kapcsolódó szócikkek[szerkesztés | forrásszöveg szerkesztése]