WikiDer > ANTLR
ANTLR | ||||
| Entwickler | Terence Parro und andere | |||
| Letzte Version | 4.8 (16. Januar 2020) | |||
| Status | Aktiv | |||
| Betriebssystem | Multiplattform | |||
| Geschrieben in | Java | |||
| Kategorie | Parser-Generator | |||
| Lizenz | BSD-Lizenz | |||
| Versionskontrolle | github.com | |||
| Webseite | (und) Projektseite | |||
| ||||
ANTLR (eine Abkürzung von "EINandere tool für lSprache RErkenntnis") ist ein Parser-Generator Das LL-Parser erzeugt. Das Software wurde ursprünglich von Terrence Parr entwickelt. Obwohl viele Teile von anderen beigesteuert wurden, ist er immer noch der Hauptentwickler.[1] Die erste Version wurde im Februar 1988 veröffentlicht. Version 3 von ANTLR wurde veröffentlicht unter BSD-Lizenz, frühere Versionen waren Public-Domain-Software.[2]
ANTLR ist in der Sprache geschrieben Java. Die Software hat als Eingabe die Spezifikation von a kontextfreie Grammatik im Erweiterte Backus-Naur-Form (EBNF). Die Generation der lexer und Parser kann in Sprachen sein wie Ada95, ActionScript, C, C♯, Java, Javascript, Ziel c, perl, Python, Rubin oder Reichweite.[3]
Geschichte
ANTLR begann als Parser-Generator für ein Abschlussprojekt, das dann YUCC hieß. Nach dem Abschluss wurde YUCC zum Thema der Masterarbeit von Terence Parr und daraus entstand ANTLR. Nach seiner Neufassung verteilte er Version 1.0 Beta von ANTLR über Newsgroups (komp. Compiler). Diese Version enthielt jedoch noch zu viel Fehler welcher verursacht Software war nicht verwendbar.
Parr entwickelt die ANTLR-Version 1.0 während seiner Promotion im Herbst 1990. Unter anderem fügte er Funktionen hinzu wie die Mechanismus des abstrakten Syntaxbaums, lexikalisch Klassen, Fehlerklassen und eine automatische Fehlerbehebungsfunktion. Die Portabilität und Qualität des Codes wurden mit dieser Version deutlich verbessert.
Version 2.0 von ANTLR wurde im Mai 1997 veröffentlicht. Nachdem die Finanzierung zur Verfügung stand, wurde John Lilley zu dieser Zeit eingestellt und übernahm einen Großteil der Entwicklung. ANTLR 2.0 brachte viele Erweiterungen und Verbesserungen bestehender Konzepte, darunter Token-Stream, nicht gierige Unterregeln, heterogene Bäume, Elementoptionen und XML-Serialisierung.
Version 3.0 wurde elf Jahre später, im Oktober 2008, veröffentlicht. Diese Version verwendet einen LL(*)-Parser anstelle eines LL(k)-Parsers.[4] Neu in dieser Version sind der automatische Rückverfolgungsmodus und die Abstraktionsfunktion Syntaxbäume umschreiben, die StringTemplate-Engine und verbesserte Fehlerberichterstattung und Fehlerbehebung.
Quellen, Anmerkungen und/oder Verweise
Nüsse:
|