Syntaxdiagramm

Ein Syntaxdiagramm wird in der theoretischen Informatik benutzt, um die Syntax einer Regelmenge graphisch darzustellen. Insbesondere können damit formale Sprachen bis zur Klasse der kontextfreien Sprachen und damit aufgrund der Teilmengeneigenschaft auch die Syntax von Programmiersprachen in einem Syntaxdiagramm dargestellt werden.

Geschichte

Syntaxdiagramme wurden 1974 in der Definition der Programmiersprache Pascal[1] eingesetzt, vermutlich auch schon früher.

Bausteine

Ein minimales Syntaxdiagramm besteht aus einem der Grundbausteine:

Syntaxdiagramme können zu größeren Syntaxdiagrammen zusammengesetzt werden:

  • ein Syntaxdiagramm kann optional gemacht werden
  • ein Syntaxdiagramm kann 0-mal oder öfter wiederholt werden
  • ein Syntaxdiagramm kann 1-mal oder öfter wiederholt werden
  • mehrere Syntaxdiagramme können verkettet oder hintereinandergeschaltet werden
  • mehrere Syntaxdiagramme können alternativ durchlaufen werden

Aus diesen Grundbausteinen und Zusammensetzungen lassen sich Syntaxdiagramme konstruieren, die gleichmächtig zu kontextfreien Grammatiken sind.

Eigenschaften

Jedes Syntaxdiagramm hat einen Eingang und einen Ausgang, die durch Linien verbunden sind. Die Linien haben eine Richtung.

Umsetzung der EBNF in ein Syntaxdiagramm

Übersetzung einer EBNF in ein Syntaxdiagramm

Jede Erweiterte Backus-Naur-Form (EBNF) kann mithilfe der nebenstehenden Grafik eins zu eins in ein Syntaxdiagramm umgewandelt werden.

Beispiel

Natürliche Zahlen als Syntaxdiagramm (führende Nullen möglich)

Das Bild zeigt, wie die natürlichen Zahlen im Dezimalsystem geschrieben werden.

Verwendung

In weiten Teilen der Informatik werden Grammatiken textuell beschrieben, insbesondere in Dokumenten, deren Zielgruppe mit formalen Schreibweisen von Grammatiken vertraut ist. In Dokumenten mit größeren Zielgruppen können Syntaxdiagramme verwendet werden, um die Grammatikregeln anschaulicher darzustellen.

Beispiele:

Commons: Syntaxdiagramm – Sammlung von Bildern

Einzelnachweise

  1. a b PASCAL User Manual and Report, Kathleen Jensen, Niklaus Wirth, 1974, Springer-Verlag, ISBN 3-540-06950-X
  2. Niklaus Wirth: Compilerbau (= Leitfäden der angewandten Mathematik und Mechanik (LAMM). Band 36). 3., überarbeitete und erweiterte Auflage. B. G. Teubner, Stuttgart 1984, ISBN 3-519-22338-4, 3. Syntax Graphen, S. 21: A5. Ist ein Element ein nicht-terminales Symbol A, so wird es durch ein Rechteck eingefasst. [… Zeichnung …] A6. Ist ein Element ein Terminalsymbol s, so wird es durch einen Kreis gekennzeichnet. [… Zeichnung …]
  3. https://www.ecma-international.org/publications-and-standards/standards/ecma-404/

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.