„JavaCC“ – Versionsunterschied
Erscheinungsbild
[gesichtete Version] | [gesichtete Version] |
Inhalt gelöscht Inhalt hinzugefügt
Koppor (Diskussion | Beiträge) K Linkfix - Quelle: Heading bei https://java.net/projects/javacc/ |
Aktuelle Version von Wikidata |
||
(10 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Infobox Software |
{{Infobox Software |
||
| Logo = |
| Logo = |
||
| Screenshot = |
|||
| Beschreibung = |
|||
| Maintainer = |
| Maintainer = |
||
| Hersteller = |
| Hersteller = |
||
| Management = |
|||
| AktuelleVersion = 6.1.3 |
|||
| AktuelleVersionFreigabeDatum = 21. Juni 2014 |
|||
| AktuelleVorabVersion = |
|||
| AktuelleVorabVersionFreigabeDatum = |
|||
| Betriebssystem = Betriebssysteme mit [[Java-Laufzeitumgebung]] |
| Betriebssystem = Betriebssysteme mit [[Java-Laufzeitumgebung]] |
||
| Kategorie = [[ |
| Kategorie = [[Parsergenerator]] |
||
| Lizenz = [[BSD-Lizenz]] |
| Lizenz = [[BSD-Lizenz]] |
||
| Programmiersprache = [[Java (Programmiersprache)|Java]] |
|||
| Deutsch = |
|||
| Website = [https://javacc.org |
| Website = [https://www.javacc.org www.javacc.org] |
||
}} |
}} |
||
'''JavaCC''' ('''''Java''' '''C'''ompiler '''C'''ompiler'') ist ein [[Lexikalischer Scanner|Lexer-]] und [[ |
'''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 |url=https://java.net/projects/javacc/lists/announce/archive/2013-07/message/0 |titel=JavaCC Announce Mailinglist on Java.net |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 |zugriff=2013-09-09 |sprache=en |offline=1 |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. |
||
⚫ | |||
⚫ | * Das Open-Source Suchmaschinen-Framework [[Lucene]] nutzt JavaCC zur Generierung des Lexers und des Query-Parsers.<ref>{{Internetquelle |url=http://lucene.apache.org/core/4_4_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html |titel=Apache Lucene package documentation |zugriff=2013-09-09 |sprache=en}}</ref> |
||
⚫ | |||
⚫ | * Das zur statischen Codeanalyse von Quelltexten genutzte Werkzeug [[PMD (Software)|PMD]] verwendet zur Verarbeitung der benutzerdefinierten Regeln intern JavaCC.<ref>{{Internetquelle |url=http://pmd.sourceforge.net/pmd-5.0.5/howtowritearule.html |titel=Customizing PMD – How to write a PMD rule |zugriff=2013-09-09 |sprache=en}}</ref> |
||
⚫ | |||
== Siehe auch == |
== Siehe auch == |
||
=== Ähnliche Programme === |
|||
* [[JFlex]] (in Java geschriebener Scanner-Generator für Java) |
* [[JFlex]] (in Java geschriebener Scanner-Generator für Java) |
||
* [[SableCC]] (Compiler-Compiler für LALR(1)-Parser in Java) |
* [[SableCC]] (Compiler-Compiler für LALR(1)-Parser in Java) |
||
* [[ANTLR]] (Compiler-Compiler für LL(*)-Parser in verschiedenen Zielsprachen) |
* [[ANTLR]] (Compiler-Compiler für LL(*)-Parser in verschiedenen Zielsprachen) |
||
* [[Coco/R]] (Compiler-Compiler für LL(k)-Parser in verschiedenen Zielsprachen) |
* [[Coco/R]] (Compiler-Compiler für LL(k)-Parser in verschiedenen Zielsprachen) |
||
⚫ | |||
⚫ | * Das Open-Source Suchmaschinen-Framework [[Lucene]] nutzt JavaCC zur Generierung des Lexers und des Query-Parsers<ref>{{Internetquelle |
||
⚫ | |||
⚫ | * Das zur statischen Codeanalyse von Quelltexten genutzte Werkzeug [[PMD (Software)|PMD]] verwendet zur Verarbeitung der benutzerdefinierten Regeln intern JavaCC<ref>{{Internetquelle |
||
⚫ | |||
== Literatur == |
== Literatur == |
||
* {{Literatur|Autor=Tom Copeland|Titel=Generating Parsers with JavaCC|Auflage=2.|Verlag=Centennial Books, Alexandria|Datum=2009|ISBN=0-9762214-3- |
* {{Literatur |Autor=Tom Copeland |Titel=Generating Parsers with JavaCC |Auflage=2. |Verlag=Centennial Books, Alexandria |Datum=2009 |ISBN=978-0-9762214-3-2}} |
||
* {{Literatur|Autor=Anthony J. Dos Reis, Laura L. Dos Reis|Titel=Compiler Construction Using Java, JavaCC, and Yacc|Auflage=1.|Verlag=John Wiley & Sons|Datum=2012|ISBN=0-470-94959-7}} |
* {{Literatur |Autor=Anthony J. Dos Reis, Laura L. Dos Reis |Titel=Compiler Construction Using Java, JavaCC, and Yacc |Auflage=1. |Verlag=John Wiley & Sons |Datum=2012 |ISBN=978-0-470-94959-7}}<!-- |
||
* {{Literatur|Autor=Daniel McFlynn, Peter F. Weissman|Titel=Using JavaCC and SableCC|Auflage=1.|Verlag= 4UPress|Datum=2004|ISBNformalFalsch=0-7481-3298-2}} |
* {{Literatur |Autor=Daniel McFlynn, Peter F. Weissman |Titel=Using JavaCC and SableCC |Auflage=1. |Verlag= 4UPress |Datum=2004 |ISBNformalFalsch=0-7481-3298-2}} |
||
* {{Literatur|Autor=Andrew W. Appel, Jens Palsberg|Titel=Modern Compiler Implementation in Java|Auflage=2.|Verlag=Cambridge University Press|Datum=2002|ISBN=0-521-82060-X}} |
* {{Literatur |Autor=Andrew W. Appel, Jens Palsberg |Titel=Modern Compiler Implementation in Java |Auflage=2. |Verlag=Cambridge University Press |Datum=2002 |ISBN=0-521-82060-X}}--> |
||
== Weblinks == |
|||
* [http://javacc.org/ Offizielle Webpräsenz] |
|||
* [http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-cooltools.html Artikel in JavaWorld] |
|||
* [http://www.engr.mun.ca/~theo/JavaCC-Tutorial/ Kapitel 1 eines geplanten Tutorials von Theodore S. Norvell (University of Newfoundland)] |
|||
* [http://www.developers-guide.net/c/121-parser-generierung-mit-javacc-eine-einfuehrung.html Einführung in JavaCC] |
|||
== Einzelnachweise == |
== Einzelnachweise == |
||
<references /> |
<references /> |
||
__NOTOC__ |
|||
[[Kategorie:Compilerbau]] |
[[Kategorie:Compilerbau]] |
Aktuelle Version vom 20. Mai 2022, 23:42 Uhr
JavaCC | |
---|---|
Basisdaten
| |
Aktuelle Version | 7.0.13[1] (18. November 2023) |
Betriebssystem | Betriebssysteme mit Java-Laufzeitumgebung |
Programmiersprache | Java |
Kategorie | Parsergenerator |
Lizenz | BSD-Lizenz |
www.javacc.org |
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
[Bearbeiten | Quelltext bearbeiten]- 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
[Bearbeiten | Quelltext bearbeiten]- 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
[Bearbeiten | Quelltext bearbeiten]- Tom Copeland: Generating Parsers with JavaCC. 2. Auflage. Centennial Books, Alexandria, 2009, ISBN 978-0-9762214-3-2.
- Anthony J. Dos Reis, Laura L. Dos Reis: Compiler Construction Using Java, JavaCC, and Yacc. 1. Auflage. John Wiley & Sons, 2012, ISBN 978-0-470-94959-7.
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Release 7.0.13. 18. November 2023 (abgerufen am 18. November 2023).
- ↑ JavaCC Announce Mailinglist on Java.net. Archiviert vom (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.
- ↑ Apache Lucene package documentation. Abgerufen am 9. September 2013 (englisch).
- ↑ The Apache Velocity project – Required Tools. Abgerufen am 9. September 2013 (englisch).
- ↑ Customizing PMD – How to write a PMD rule. Abgerufen am 9. September 2013 (englisch).