Bison

Für die syntaktische Analyse verwenden wir den Parser-Generator Bison. Die Dokumentation ist auch im Linux-Pool mit info bison einsehbar. Bison ist eine weitestgehend abwärtskompatible Erweiterung des klassischen Generators Yacc.

Einige Beispiele von Bison-Programmen sind verfügbar. Eine Vorlage für ein Bison-Programm erkennt if-then-else-artige Konstrukte. Ein weiteres Programm zählt durch Leerzeichen getrennte Zahlen einer Zeile zusammen. Es verwendet ein Flex-Programm um die Zahlen zu erkennen. Das Verzeichnis enthält auch Vorschläge für die Aufgaben von den entsprechenden Übungsblättern.

Als Beispiel für den Umgang mit Attributen zur semantischen Analyse dient die Erkennung arithmetischer Ausdrücke. Der Scanner wird aus einem Flex-Programm erzeugt und der Parser aus einem Bison-Programm.

Das Erzeugen eines Parsers aus einer Spezifikation parser.y erfolgt in zwei Schritten. Mit bison parser.y wird ein C-Programm parser.tab.c erzeugt, das den Parser implementiert. Mit gcc parser.tab.c wird eine ausführbare Datei a.out erzeugt. Sie enthält den Parser, der von der Standard-Eingabe liest.

Visualisierung von Graphen

Das Programm dot aus dem Paket Graphviz zeichnet Graphen. Es ist im Linux-Pool installiert und die Dokumentation ist dort mit man dot einsehbar. Eine Spezifikation graph.dot eines Graphen wird mit dot -Tps graph.dot > graph.ps in die PostScript-Zeichnung graph.ps übersetzt.