„Syntaxbaum“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Bindestrich mitverlinkt
++ Literatur
Zeile 44: Zeile 44:


<math>S \Rightarrow AB \Rightarrow Ab \Rightarrow aAb \Rightarrow aaAb \Rightarrow aab.</math>
<math>S \Rightarrow AB \Rightarrow Ab \Rightarrow aAb \Rightarrow aaAb \Rightarrow aab.</math>

== Literatur ==
* {{Literatur| Autor=[[Ingo Wegener]]| Titel=Theoretische Informatik| TitelErg=Eine algorithmenorientierte Einführung| Verlag=B.G. Teubner| Ort=Stuttgart| Kapitel=6.1 Beispiele kontextfreier Sprachen und Syntaxbäume| Seiten=147-148| ISBN=3-519-02123-4}}
*{{Literatur| Autor=[[Uwe Schöning]]| Titel=Theoretische Informatik – kurz gefasst| Auflage=5| Verlag=Spektrum Akademischer Verlag| Ort=Heidelberg| Kapitel=1.1.4 Syntaxbäume| Seiten=15-17| ISBN=978-3-8274-1824-1}}
*{{Literatur| Autor=[[Juraj Hromkovič]]| Titel=Theoretische Informatik| TitelErg=Formale Sprachen, Berechenbarkeit, Komplexitätstheorie, Algorithmik, Kommunikation und Kryptographie| Auflage=3| Verlag=B.G. Teubner Verlag| Ort=Heidelberg| Kapitel=10.4 Kontextfreie Grammatiken und Kellerautomaten| Seiten=378| ISBN=978-3-8351-0043-5}}


<!--
<!--
== Einzelnachweise ==
== Einzelnachweise ==

Version vom 1. Februar 2018, 15:05 Uhr

Ein Syntax-, Ableitungs- oder Parsebaum ist ein Begriff aus der theoretischen Informatik und bezeichnet eine baumförmige Darstellung einer Ableitung. Der Syntaxbaum ist ein Hilfsmittel zur Visualisierung von Wörtern einer (kontextfreien) Grammatik.

Man betrachte eine kontextfreie Grammatik . Ein Ableitungsbaum dazu ist ein Baum, dessen Knoten mit Symbolen aus (also Terminal- und Nichtterminalsymbolen und dem leeren Wort) beschriftet sind. Der Baum ist geordnet, d. h. die Kinder jedes Knotens haben eine feste Reihenfolge, und für die Beschriftung gilt:

  • Die Wurzel ist mit dem Startsymbol beschriftet. Diese Eigenschaft wird gelegentlich nicht verlangt. Ein Baum, der sie erfüllt, wird als vollständiger Ableitungsbaum bezeichnet.
  • Wenn die Kinder eines mit beschrifteten inneren Knotens mit den Symbolen (in dieser Reihenfolge) beschriftet sind, muss die Grammatik die Regel enthalten.
  • Die Blätter des Baumes sind mit Symbolen aus beschriftet.
  • Ist ein Blatt mit gekennzeichnet, so ist es der einzige Nachfolger seines Vorgängerknotens.

Als innere Knoten kommen also nur Nichtterminalsymbole in Frage, sowie für die Blätter nur die Terminalsymbole oder das leere Wort. Für das Vierertupel werden auch die Buchstaben verwendet.

Konstruktion

Die möglichen Syntaxbäume/diagramme erstellen sich von der Wurzel ausgehend durch befolgen der Produktionsregeln. Bei der Ableitung einer kontextfreien Grammatik erfolgt je Ableitungsschritt das Ersetzen genau eines Nichtterminals. Der Ableitungsvorgang ist dann abgeschlossen, wenn keine inneren Knoten mehr vorhanden sind, d.h. der Syntaxbaum in den Blättern nur Terminale oder das leere Wort trägt. Alle Wörter einer kontextfreien Grammatik müssen über die Produktionsregeln durch einen abgeschlossenen Syntaxbaum darstellbar(ableitbar) sein.

Eindeutigkeit des Ableitungsbaums

Zu einer gegebenen Ableitung ohne -Regeln ist der Ableitungsbaum eindeutig. Zu einem Ableitungsbaum können jedoch verschiedene Ableitungen existieren, je nachdem, in welcher Reihenfolge die Regeln angewendet werden (siehe dazu Rechtsableitung). Diese verschiedenen Ableitungen erzeugen jedoch alle dasselbe Wort, welches sich am Ableitungsbaum an den Blättern ablesen beziehungsweise durch eine Tiefensuche ermitteln lässt.

Verschiedene Ableitungen zu einem Ableitungsbaum bedeuten dabei noch nicht, dass die Grammatik mehrdeutig ist: Dazu muss es verschiedene Ableitungsbäume geben, die dasselbe Wort erzeugen.

In der Literatur kommt es vor, dass Syntax- und Ableitungsbaum nicht synonym verwendet werden. Insbesondere im Compilerbau ist der abstrakte Syntaxbaum von Bedeutung, der durch Entfernen von inneren Knoten mit nur einem Kind aus dem Ableitungsbaum hervorgeht. Der eigentliche Ableitungsbaum wird dabei zur Unterscheidung oft als konkreter Syntaxbaum oder Parsebaum bezeichnet.

Beispiel

Wir betrachten eine Grammatik mit dem Startsymbol und den folgenden Regeln:

Ein möglicher Ableitungsbaum zu dieser Grammatik sieht so aus:

Durch Ablesen der Terminalsymbole an den Blättern von links nach rechts erhält man das abgeleitete Wort aab. Ableitungen zu diesem Baum sind unter anderem die Linksableitung

und die Rechtsableitung

Literatur

  • Ingo Wegener: Theoretische Informatik. Eine algorithmenorientierte Einführung. B.G. Teubner, Stuttgart, ISBN 3-519-02123-4, 6.1 Beispiele kontextfreier Sprachen und Syntaxbäume, S. 147–148.
  • Uwe Schöning: Theoretische Informatik – kurz gefasst. 5. Auflage. Spektrum Akademischer Verlag, Heidelberg, ISBN 978-3-8274-1824-1, 1.1.4 Syntaxbäume, S. 15–17.
  • Juraj Hromkovič: Theoretische Informatik. Formale Sprachen, Berechenbarkeit, Komplexitätstheorie, Algorithmik, Kommunikation und Kryptographie. 3. Auflage. B.G. Teubner Verlag, Heidelberg, ISBN 978-3-8351-0043-5, 10.4 Kontextfreie Grammatiken und Kellerautomaten, S. 378.