- Compilerbau
-
Der Compilerbau, deutsch Übersetzerbau, ist eine Disziplin der Informatik. Sie beschäftigt sich mit dem Entwurf und der Programmierung von Compilern, die einen Quellcode (ein meist in einer höheren Programmiersprache verfasstes Programm, also einen Quelltext) in einen Zielcode (meist eine weniger ausdrucksstarke Sprache, vorrangig Maschinensprache) umsetzen.
Für den Compilerbau stehen Softwarewerkzeuge (zum Beispiel Parsergeneratoren) zur Verfügung, die aus Spezifikationen Teile eines Compilers wie lexikalische Scanner oder Parser erzeugen (oft fälschlicherweise als Compiler-Compiler oder Compilergenerierung bezeichnet). Dazu gehören:
- Lex – ein Scannergenerator; Open-Source-Alternative: Flex
- Yacc – Yet Another CompilerCompiler, ein Parsergenerator; Open-Source-Alternative: GNU Bison
- GOLD Parsing System - Parsergenerator für C, C++, .NET, Java, D, Delphi, Visual Basic, Python.
- JavaCC – Java CompilerCompiler, ein CC implementiert in Java mit vielen Möglichkeiten, der u. a. Scanner- und Parsergenerator vereint.
- Coco/R – Scanner und Parsergenerator für C#, Java, C++, Oberon, Delphi, Ada, Ruby, Unicon. Ist unter einer erweiterten GPL verfügbar.
- ANTLR – ANother Tool for Language Recognition – Parsergenerator für C, C#, C++, Objective C, Java, Python, Ruby, LISP, Perl, PHP, Oberon, Ada95
- AtoCC – Visueller Scanner- und Parsergenerator für akademische Zwecke (C#, Java, Delphi und Scheme).
Echte Compilergenerierung, also die automatische Generierung eines vollständigen Compilers aus einer formalen Spezifikation, ist noch Forschungsgebiet, z. B. an der Universität der Bundeswehr die Projekte JACCIE und SIC.
Literatur
- Niklaus Wirth: Grundlagen und Techniken des Compilerbaus. ISBN 3-486-24374-8 (Der Autor entwickelt für eine einfache Sprache einen vollständigen Compiler.)
- Reinhard Wilhelm, Dieter Maurer: Übersetzerbau – Theorie, Konstruktion, Generierung. Springer 1997, ISBN 3-540-61692-6
- Reinhard Wilhelm, Helmut Seidl: Übersetzerbau: Virtuelle Maschinen. Springer 2007, ISBN 978-3540495963
- Aho, Lam, Sethi, Ullman: Compiler, Pearson, 2008, ISBN 978-3-8273-7097-6
Weblinks
- Einführung in den Compilerbau an der Fachhochschule Regensburg: Skript, Folien, Übungen, Beispiel-Compiler
- Jack Crenshaw: Let's Build a Compiler Pragmatische Einführung in das Thema Compilerbau (englisch)
- LR(k)-Analyse für Pragmatiker Pragmatische Einführung in die LR(k)-Analyse (Andreas Kunert)
Wikimedia Foundation.