Compilerbau

Grundlagen und Anwendungen

Hanspeter Mössenböck

Diese Publikation zitieren

Hanspeter Mössenböck, Compilerbau (2024), dpunkt.verlag, Heidelberg, ISBN: 9783988901453

235
Accesses

Beschreibung / Abstract



Compilerbau praxisnah erklärt



  • Systematische Einführung mit zahlreichen Übungsaufgaben

  • Entwicklung eines Compilers für 
    MicroJava

  • Mit umfangreichem Zusatzmaterial zum Buch 




Das Buch behandelt die praxisrelevanten Grundlagen des Compilerbaus, von der lexikalischen Analyse über die Syntaxanalyse bis zur Semantikverarbeitung und zur Codeerzeugung. Weitere Themen sind die systematische Beschreibung von Übersetzungsprozessen durch attributierte Grammatiken sowie der Einsatz eines Compilergenerators zur automatischen Erzeugung der Kernteile eines Compilers.


Als durchgängiges Beispiel wird ein Compiler für
MicroJava – eine einfache Java-ähnliche Programmiersprache – entwickelt, der ausführbaren Bytecode – ähnlich dem Java-Bytecode – erzeugt.


Das Buch kann als Begleitliteratur zu einer einführenden Compilerbau-Vorlesung oder zum Selbststudium verwendet werden, um die Arbeitsweise von Compilern zu verstehen und Compiler oder compilerähnliche Werkzeuge zu implementieren, wie sie in der Praxis der Softwareentwicklung häufig vorkommen. Die im Buch behandelten Techniken können immer dann angewendet werden, wenn eine strukturierte Eingabe vorliegt, die durch eine Grammatik beschrieben werden kann.


Die einzelnen Kapitel enthalten über 70 Übungsaufgaben, mit denen das Gelernte vertieft werden kann.


Webseite zum Buch:
http://ssw.jku.at/CompilerBuch mit



  • Musterlösungen zu den Übungsaufgaben

  • Folien einer zweistündigen Vorlesung

  • Quellcode des
    MicroJava-Compilers

  • Weitere Materialien


Beschreibung

Hanspeter Mössenböck ist Professor für Informatik an der Johannes Kepler Universität Linz und beschäftigt sich seit vielen Jahren mit Programmiersprachen und Compilern. Er war Mitarbeiter von Professor Niklaus Wirth an der ETH Zürich, einem der Pioniere des Compilerbaus, der unter anderem die Programmiersprache Pascal entwickelt hat. Seit über 20 Jahren kooperiert er mit Oracle Labs auf dem Gebiet der dynamischen Compileroptimierung für Java und andere Programmiersprachen. Viele der an seinem Institut entwickelten Techniken werden heute weltweit in Java-Systemen eingesetzt. Hanspeter Mössenböck ist Autor von Büchern über Java, C#, .NET sowie über compilererzeugende Systeme.

Inhaltsverzeichnis

  • Compilerbau
  • Autor
  • Impressum
  • Geleitwort
  • Vorwort
  • Inhaltsverzeichnis
  • Kapitel 1 - Überblick
  • 1.1 Geschichte des Compilerbaus
  • 1.2 Dynamische Struktur eines Compilers
  • 1.3 Statische Struktur eines Compilers
  • 1.4 Grammatiken
  • 1.5 Syntaxbäume
  • 1.6 MicroJava
  • 1.7 Übungsaufgaben
  • Kapitel 2 - Lexikalische Analyse
  • 2.1 Reguläre Grammatiken und endliche Automaten
  • 2.2 Der Scanner als endlicher Automat
  • 2.3 Implementierung des Scanners
  • 2.4 Übungsaufgaben
  • Kapitel 3 - Syntaxanalyse
  • 3.1 Kontextfreie Grammatiken und Kellerautomaten
  • 3.2 Rekursiver Abstieg
  • 3.3 LL(1)-Eigenschaft
  • 3.4 Syntaxfehlerbehandlung
  • 3.5 Übungsaufgaben
  • Kapitel 4 - Attributierte Grammatiken
  • 4.1 Bestandteile
  • 4.2 Anwendungsbeispiele
  • 4.3 Übungsaufgaben
  • Kapitel 5 - Symbolliste
  • 5.1 Objektknoten
  • 5.2 Scopeknoten
  • 5.3 Strukturknoten
  • 5.4 Typprüfungen
  • 5.5 Lösen von LL(1)-Konflikten mittels der Symbolliste
  • 5.6 Initialisierung der Symbolliste
  • 5.7 Übungsaufgaben
  • Kapitel 6 - Codeerzeugung
  • 6.1 Die MicroJava-VM
  • 6.2 Codespeicher
  • 6.3 Operanden der Codeerzeugung
  • 6.4 Laden von Werten
  • 6.5 Ausdrücke
  • 6.6 Zuweisungen
  • 6.7 Sprünge und Marken
  • 6.8 Ablaufkontrollstrukturen
  • 6.9 Methoden
  • 6.10 Objektdatei
  • 6.11 Übungsaufgaben
  • Kapitel 7 - Der Compilergenerator Coco/R
  • 7.1 Scannerbeschreibung
  • 7.2 Parserbeschreibung
  • 7.3 Fehlerbehandlung
  • 7.4 LL(1)-Konflikte
  • 7.5 Beispiele
  • 7.6 Übungsaufgaben
  • Kapitel 8 - Bottom-up-Syntaxanalyse
  • 8.1 Arbeitsweise eines Bottom-up-Parsers
  • 8.2 LR-Grammatiken
  • 8.3 LR-Tabellenerzeugung
  • 8.4 LR-Tabellenverkleinerung
  • 8.5 Semantikanschluss
  • 8.6 LR-Fehlerbehandlung
  • 8.7 Übungsaufgaben
  • Anhang A - Die Sprache MicroJava
  • Anhang B - Der MicroJava-Compiler
  • Literatur
  • Index

Mehr von dieser Serie

    Ähnliche Titel

      Mehr von diesem Autor