Forum: PC-Programmierung Syntax-Definition(Backus naur form)


von Da Mo (Gast)


Lesenswert?

Wie funktioniert die Syntax-Definition(Backus naur form) für z.B. 
<float>?


Vielen Dank!

von Karl H. (kbuchegg)


Lesenswert?

Naja. So schwer ist das dann auch wieder nicht.
Mal dir ein paar Floating Point Zahlen auf und sieh dir an, was da alles 
vorkommen kann. Und dann giesst du das in eine Regel.
Eine Floating Point Zahl besteht aus .... gefolgt von ....

Allerdings ist das für diese Basistypen meist von akademischen Interesse 
(man kann es machen). In einem realen Compiler erledigt diesen Schritt 
meistens der lexikalische Scanner, der den Inputtext bereits in Tokens 
auflöst. Und erst ab dieser Tokenebene baut man einen Scanner auf einer 
EBNF auf.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Die Frage hört sich fast so an,

- als ob diese Frage noch niemand auf der Welt gestellt hätte oder
- also ob sie noch niemand auf der Welt beantwortet hätte oder
- als ob noch niemand die Antwort im Internet veröffentlicht hätte oder
- als ob die entsprechende Webseite so kryptisch gestaltet wäre, dass
  sie nicht einmal Google finden kann.

Also jetzt mal ein ganz kleines Bisschen Eigeninitiative, oder?

von Karl H. (kbuchegg)


Lesenswert?

Yalu X. schrieb:
> Die Frage hört sich fast so an,
>
> - als ob diese Frage noch niemand auf der Welt gestellt hätte oder
> - also ob sie noch niemand auf der Welt beantwortet hätte oder
> - als ob noch niemand die Antwort im Internet veröffentlicht hätte oder
> - als ob die entsprechende Webseite so kryptisch gestaltet wäre, dass
>   sie nicht einmal Google finden kann.

- als ob sie ähnlich schwer wie Raketentechnik ist
- als ob es schwierig ist, das womit man hochkommt zu kontrollieren.

TO:
kann deine BNF diese Dinge korrekt als Floating Point Zahl erkennen?

   -23.
   -23.5
   -23.5E-6
    23.
    23.5
    23.5E6
    23.5E+6
   +23.
   +23.5
   +23.5E6

von Yalu X. (yalu) (Moderator)


Lesenswert?

Karl Heinz Buchegger schrieb:
> kann deine BNF diese Dinge korrekt als Floating Point Zahl erkennen?
>
>    -23.
>    -23.5
>    -23.5E-6
>     23.
>     23.5
>     23.5E6
>     23.5E+6
>    +23.
>    +23.5
>    +23.5E6

Vielleicht diese noch:

      23E6
      23.5e-6
        .5

Damit würden zumindest diejenigen Schreibweisen unterstützt, die in
praktisch allen Programmiersprachen gültig sind. In Fortran sollte
zusätzlich

      23.5D6

und in C

      23.5e6f
      23.5e6l
      0x23.5p6

möglich sein.

Ich würde aber trotzdem mal Google, Wikipedia usw. bemühen. Da wurde
schon sooo viel zu dem Thema geschrieben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.