Grammatikregeln als Ersetzungsregeln
Wege durch Syntaxdiagramme
Die Syntaxdiagramme für Gleitkommazahlen können als Fahrpläne zur Erzeugung von Gleitkommazahlen gedeutet werden.
floatnumber:
pointfloat:
exponentfloat:
intpart:
fraction:
exponent:
digit:
Jeder Weg
durch diese Diagramme - beginnend im Diagramm floatnumber
-
liefert eine korrekt gebildete Gleitkommazahl:
floatnumber -> pointfloat -> fraction -> . digit digit -> . 1 digit -> . 1 4
Wenn es einem (wie im Fall .14
) gelingt, ein Wort mit einem Weg
durch die gegebenen Diagramme zu erzeugen, dann stellt das Wort eine korrekt gebildete
Gleitkommazahl dar.
Deutung von Grammatikregeln
Die oben gezeigten Syntaxdiagramme sind Veranschaulichungen für die folgenden Grammatikregeln:
... floatnumber ::= pointfloat | exponentfloat pointfloat ::= [intpart] fraction | intpart "." exponentfloat ::= (intpart | pointfloat) exponent intpart ::= digit+ fraction ::= "." digit+ exponent ::= ("e" | "E") ["+" | "-"] digit+ digit ::= "0"..."9" ...
Die Grammatikregeln können als Abkürzungen für Ersetzungsregeln gedeutet werden:
Grammatikregeln - in EBNF | Ersetzungsregeln |
---|---|
floatnumber ::= pointfloat | exponentfloat |
floatnumber -> pointfloat floatnumber -> exponentfloat |
pointfloat ::= [intpart] fraction | intpart "." |
pointfloat -> fraction pointfloat -> intpart fraction pointfloat -> intpart "." |
exponentfloat ::= (intpart | pointfloat) exponent |
exponentfloat -> intpart exponent exponentfloat -> pointfloat exponent |
intpart ::= digit+ |
intpart -> digit intpart -> digit intpart |
fraction ::= "." digit+ |
fraction -> "." intpart |
exponent ::= ("e" | "E") ["+" | "-"] digit+ |
exponent -> "e" intpart exponent -> "E" intpart exponent -> "e" "+" intpart exponent -> "E" "+" intpart exponent -> "e" "-" intpart exponent -> "E" "-" intpart |
digit ::= "0"..."9" |
digit -> "0" digit -> "1" digit -> "2" digit -> "3" digit -> "4" digit -> "5" digit -> "6" digit -> "7" digit -> "8" digit -> "9" |
Wenn man mit dem "richtigen" Symbol beginnt, dann kann man durch einen sukzessiven Ersetzungsprozess die Symbolfolge zur Darstellung einer gewünschten Gleitkommazahl ableiten.
floatnumber -> pointfloat -> fraction -> "." intpart -> "." digit intpart -> "." digit digit -> "." "1" digit -> "." "1" "4"
Aufgabe 1
Zeige entsprechend, dass die Zeichenkette 2.E-1
mit den Ersetzungsregeln
erzeugt werden kann.