ANTLR

ANTLR (een afkorting van "ANother Tool for Language Recognition") is een parsergenerator die LL-parsers genereert. De software is van oorsprong ontwikkeld door Terrence Parr. Alhoewel er veel onderdelen zijn bijgedragen door anderen, is hij nog altijd de hoofdontwikkelaar.[1] De eerste versie werd uitgebracht in februari 1988. Versie 3 van ANTLR is uitgebracht onder BSD-licentie, voorgaande versies waren publiek domein-software.[2]

ANTLR
OntwikkelaarTerence Parr en anderen
Recentste versie4.7 
(30 maart 2017)
StatusActief
BesturingssysteemMultiplatform
Geschreven inJava
CategorieParsergenerator
LicentieBSD-licentie
Versiebeheergithub.com
Website(en) Projectpagina
Portaal    Informatica
Vrije software

ANTLR is geschreven in de taal Java. De software heeft als invoer de specificatie van een contextvrije grammatica in Extended Backus Naur Form (EBNF) . De generatie van de lexer en parser kan in talen als Ada95, ActionScript, C, C♯, Java, JavaScript, Objective-C, Perl, Python, Ruby of Scala.[3]

Geschiedenis

ANTLR begon als een parsergenerator voor een afstudeerproject, destijds onder de naam YUCC. Na zijn afstuderen werd YUCC het onderwerp van de masterscriptie van Terence Parr en daaruit kwam ANTLR voort. Na zijn herschrijven heeft hij versie 1.0 bèta van ANTLR verspreid via nieuwsgroepen (comp.compilers). Deze versie bevatte echter nog te veel bugs waardoor de software niet bruikbaar was.

ANTLR versie 1.0 ontwikkelt Parr tijdens zijn promotie, herfst 1990. Hierbij voegde hij onder andere functionaliteit als het abstractesyntaxisboommechanisme, lexicale klassen, error-klassen en een geautomatiseerde foutherstelfunctie toe. De overdraagbaarheid en kwaliteit van de code zijn bij deze versie significant verbeterd.

Versie 2.0 van ANTLR verscheen in mei 1997. Nadat er geld was vrijgekomen was John Lilley destijds ingehuurd, en hij heeft een groot deel van de ontwikkeling voor zijn rekening genomen. ANTLR 2.0 bracht veel uitbreidingen en verbeteringen van bestaande concepten met zich mee, waaronder token streams, nongreedy subrules, heterogeneous trees, element options en XML-serialisatie.

Versie 3.0 werd elf jaar later, in oktober 2008, uitgebracht. In deze versie wordt gebruikgemaakt van een LL(*)-parser in plaats van een LL(k)-parser.[4] Nieuwe in deze versie zijn onder andere automatische backtracking mode, functionaliteit om abstracte syntaxisbomen te herschrijven, de StringTemplate engine en verbeterde foutenrapportage en foutenherstel.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.