Zum Inhalt springen

„JavaCC“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Kapitelreihenfolge
InternetArchiveBot hat 1 Archivlink(s) ergänzt und 0 Link(s) als defekt/tot markiert. #IABot (v1.6.5)
Zeile 12: Zeile 12:
}}
}}


'''JavaCC''' ('''''Java''' '''C'''ompiler '''C'''ompiler'') ist ein [[Lexikalischer Scanner|Lexer-]] und [[Parsergenerator]], der in [[Java (Programmiersprache)|Java]] implementiert ist und als Ausgabe Java- und [[C++]]-Quellcode erzeugt.<ref>{{Internetquelle|titel=JavaCC Announce Mailinglist on Java.net|url=https://java.net/projects/javacc/lists/announce/archive/2013-07/message/0|zugriff=2013-09-09|sprache=en}}</ref> JavaCC ist [[Open Source]] und unter den Bedingungen der [[BSD-Lizenz]] herausgegeben.
'''JavaCC''' ('''''Java''' '''C'''ompiler '''C'''ompiler'') ist ein [[Lexikalischer Scanner|Lexer-]] und [[Parsergenerator]], der in [[Java (Programmiersprache)|Java]] implementiert ist und als Ausgabe Java- und [[C++]]-Quellcode erzeugt.<ref>{{Internetquelle|titel=JavaCC Announce Mailinglist on Java.net|url=https://java.net/projects/javacc/lists/announce/archive/2013-07/message/0|zugriff=2013-09-09|sprache=en|offline=ja|archiv-url=https://web.archive.org/web/20160411101415/https://java.net/projects/javacc/lists/announce/archive/2013-07/message/0|archiv-datum=2016-04-11|archiv-bot=2018-04-17 00:09:29 InternetArchiveBot}}</ref> JavaCC ist [[Open Source]] und unter den Bedingungen der [[BSD-Lizenz]] herausgegeben.


JavaCC funktioniert ähnlich wie das bekannte Programm [[Yacc]], benutzt aber ein anderes Verfahren zum Parsen der Daten: JavaCC erzeugt einen [[LL-Parser|LL(k)-Parser]], während Yacc einen [[LALR-Parser|LALR(1)-Parser]] erzeugt. Die [[Formale Grammatik|Grammatik]] muss also etwas anders strukturiert sein, als dies bei Yacc der Fall wäre.
JavaCC funktioniert ähnlich wie das bekannte Programm [[Yacc]], benutzt aber ein anderes Verfahren zum Parsen der Daten: JavaCC erzeugt einen [[LL-Parser|LL(k)-Parser]], während Yacc einen [[LALR-Parser|LALR(1)-Parser]] erzeugt. Die [[Formale Grammatik|Grammatik]] muss also etwas anders strukturiert sein, als dies bei Yacc der Fall wäre.

Version vom 17. April 2018, 02:09 Uhr

JavaCC
Basisdaten

Aktuelle Version 7.0.2
(Format invalid)
Betriebssystem Betriebssysteme mit Java-Laufzeitumgebung
Programmier­sprache Java
Kategorie Parsergenerator
Lizenz BSD-Lizenz
github.com/javacc/javacc

JavaCC (Java Compiler Compiler) ist ein Lexer- und Parsergenerator, der in Java implementiert ist und als Ausgabe Java- und C++-Quellcode erzeugt.[2] JavaCC ist Open Source und unter den Bedingungen der BSD-Lizenz herausgegeben.

JavaCC funktioniert ähnlich wie das bekannte Programm Yacc, benutzt aber ein anderes Verfahren zum Parsen der Daten: JavaCC erzeugt einen LL(k)-Parser, während Yacc einen LALR(1)-Parser erzeugt. Die Grammatik muss also etwas anders strukturiert sein, als dies bei Yacc der Fall wäre.

Programme und Bibliotheken, die intern JavaCC verwenden

  • Das Open-Source Suchmaschinen-Framework Lucene nutzt JavaCC zur Generierung des Lexers und des Query-Parsers.[3]
  • Die Open-Source Template-Engine Velocity greift für seine Parserfunktionen auf JavaCC zurück.[4]
  • Das zur statischen Codeanalyse von Quelltexten genutzte Werkzeug PMD verwendet zur Verarbeitung der benutzerdefinierten Regeln intern JavaCC.[5]
  • Das Java-API des Ontologie-Projekts Cyc greift für seine Parserfunktionen auf JavaCC zurück.

Siehe auch

  • JFlex (in Java geschriebener Scanner-Generator für Java)
  • SableCC (Compiler-Compiler für LALR(1)-Parser in Java)
  • ANTLR (Compiler-Compiler für LL(*)-Parser in verschiedenen Zielsprachen)
  • Coco/R (Compiler-Compiler für LL(k)-Parser in verschiedenen Zielsprachen)

Literatur

  • Tom Copeland: Generating Parsers with JavaCC. 2. Auflage. Centennial Books, Alexandria, 2009, ISBN 0-9762214-3-8.
  • Anthony J. Dos Reis, Laura L. Dos Reis: Compiler Construction Using Java, JavaCC, and Yacc. 1. Auflage. John Wiley & Sons, 2012, ISBN 0-470-94959-7.

Einzelnachweise

  1. https://github.com/javacc/javacc/releases/tag/release_7_0_2
  2. JavaCC Announce Mailinglist on Java.net. Archiviert vom Original (nicht mehr online verfügbar) am 11. April 2016; abgerufen am 9. September 2013 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/java.net
  3. Apache Lucene package documentation. Abgerufen am 9. September 2013 (englisch).
  4. The Apache Velocity project – Required Tools. Abgerufen am 9. September 2013 (englisch).
  5. Customizing PMD – How to write a PMD rule. Abgerufen am 9. September 2013 (englisch).