Syntaxdiagramm: Unterschied zwischen den Versionen

220 Bytes hinzugefügt ,  12:53, 21. Nov. 2021
keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Syntaxdiagramme sind eine Darstellungsform, um die Syntax einer Programmiersprache schematisch darzustellen. Sie heißen auch ''Schienen-Diagramm'' (engl. ''Railroad-Diagram''), da sie an die Scheinen einer Eisenbahn erinnern.  
''Syntaxdiagramme'' stellen die ''Syntax einer Programmiersprache'' schematisch dar. Sie heißen auch ''Eisenbahn-Diagramm'' (engl. ''Railroad-Diagram''), da sie an die Schienen einer Eisenbahn erinnern.


Man kann sie lesen, indem man sich vorstellt, ein Zug fährt vom Anfang des Diagramms immer in Pfeilrichtung durch das Diagramm. Jeder mögliche Weg, den der Zug bis zum Ende nehmen kann, stellt eine ''gültige'' Syntax in der Programmiersprache dar.
Man kann sie lesen, indem man sich vorstellt, ein Zug fährt vom Anfang des Diagramms immer in Pfeilrichtung durch das Diagramm. Jeder mögliche Weg, den der Zug bis zum Ende nehmen kann, stellt eine ''gültige'' Syntax in der Programmiersprache dar.


Syntaxdiagramme bestehen aus zwei Arten von Symbolen:
Syntaxdiagramme bestehen aus zwei Arten von Symbolen:
<dl>
<dt>Terminale</dt>
<dd>Dies sind konkrete ''Zeichen'', die in den Quelltext eines Programms geschrieben werden.</dd>
<dt>Nichtterminal</dt>
<dd>Dies sind Platzhalter für Syntaxelemente, die an einer anderen Stelle durch ein eigenes Syntaxdiagramm beschrieben sind. Kommt der "Zug" zum Beispiel an ein Nichtterminal mit dem Bezeichner "logischer Ausdruck", dann muss man das Syntaxdiagramm zu "logischer Ausdruck" finden und zunächst dort "weiterfahren", bevor man wieder im ursprünglichen Syntaxdiagramm weitermacht.</dd>
</dl>


Hier ist zum Beispiel eine [[Bedingte Anweisung]] in der Programmiersprache [[Java]]. Darunter sind mögliche Wege durch das Diagramm in rot abgebildet und daneben der entsprechende Java-Quelltext.
; Terminale
: Dies sind konkrete ''Zeichen'', die in den Quelltext eines Programms geschrieben werden. Also die Symbole, aus denen ein Programm besteht.
; Nichtterminal
: Dies sind Platzhalter für Syntaxelemente, die an einer anderen Stelle durch ein eigenes Syntaxdiagramm beschrieben sind. Kommt der "Zug" zum Beispiel an ein Nichtterminal mit dem Bezeichner "logischer Ausdruck", dann muss man das Syntaxdiagramm zu "logischer Ausdruck" finden und zunächst dort "weiterfahren", bevor man wieder im ursprünglichen Syntaxdiagramm weitermacht.


[[Bild:Java-Syntax-Ifelseif.png|600px|center]]
Hier ist zum Beispiel das Syntaxdiagramm einer ''Bedingten Anweisung'' in der Programmiersprache {{Java}}. Darunter sind mögliche Wege durch das Diagramm in rot abgebildet und daneben der entsprechende Java-Quelltext.
 
[[Bild:Java-Syntax-Ifelseif.png|600px|center|Syntaxdiagramm zur Bedingten Anweisung in {{Java}}.]]




Zeile 19: Zeile 18:
| [[Bild:Java-Syntax-Ifelseif-1.png|400px|center]]
| [[Bild:Java-Syntax-Ifelseif-1.png|400px|center]]
| <syntaxhighlight lang="java">
| <syntaxhighlight lang="java">
if( a > 5 ) {
if( /* Bedingung */ ) {
     // Anweisungen
     // Anweisungen
}
}
Zeile 26: Zeile 25:
| [[Bild:Java-Syntax-Ifelseif-2.png|400px|center]]
| [[Bild:Java-Syntax-Ifelseif-2.png|400px|center]]
| <syntaxhighlight lang="java">
| <syntaxhighlight lang="java">
if( a > 5 ) {
if( /* Bedingung */ ) {
     // Anweisungen
     // Anweisungen
} else {
} else {
Zeile 35: Zeile 34:
| [[Bild:Java-Syntax-Ifelseif-3.png|400px|center]]
| [[Bild:Java-Syntax-Ifelseif-3.png|400px|center]]
| <syntaxhighlight lang="java">
| <syntaxhighlight lang="java">
if( a > 5 ) {
if( /* Bedingung */ ) {
     // Anweisungen
     // Anweisungen
} else if {
} else if( /* Bedingung */ ) {
     // Anweisungen
     // Anweisungen
} else if {
} else if( /* Bedingung */ ) {
     // Anweisungen
     // Anweisungen
}
}
</syntaxhighlight>
</syntaxhighlight>
|}
|}
[[Bild:Syntaxdi ifelse.gif|center|frame|Visualisierung zum Lesen eines Syntaxdiagramms.]]
8.581

Bearbeitungen