Backus-Naur-Notation

Von: , Frage gestellt am Fr, 11. Jun 2004

Hallo,

wer kann mir bei der Interpretation und Umformulierung (in die erweiterte Backus-Naur-Notation (EBNF))des folgenden Ausdrucks helfen?

Der Ausdruck lautet:

floatbrüche (int a, float b)
{ergebnis float;
ergebnis:= a*b*0,01;
return ergebnis}
end

Was bedeutet dieser Ausdruck und wie sieht er in EBNF aus?
Danke für jede Rückmeldung!

Tschüß

4 Antworten zu dieser Frage

  1. Antwort von nach 7 Stunden 0 hilfreich
    Re: Backus-Naur-Notation

    Hallo,
    ich verstehe die Aufgabenstellung nicht. Die EBNF dient zur Beschreibung (kontextfreier) Sprachen. Was soll mit dieser speziellen Funktion hier geschehen - inwieweit soll sie in EBNF überführt werden ?

    Gruss
    Enno

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: Backus-Naur-Notation

      Ich glaube, es ist eine EBNF gefragt, die diesen Ausdruck "erkennt".
      Vielleicht sowas :
      {a-z}'(' { ('int'|'float'){a-z}{,} } ')' '{'
      { {a-z} ('int'|'float')';' }
      { {a-z} ':=' ...........}
      'return' {' '} {a-z} ';' '}' 'end'

      Oder so ungefähr. Die '' stehen für Literale und die {} für "beliebig
      oft wiedeholen oder auch weglassen).

      Gruß
      Thorsten [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

      • Antwort von nach einem Tag 0 hilfreich
        Re^3: Backus-Naur-Notation

        Vielleicht sowas :
        [...]
        Ich würde das ganze etwas allgemeiner aufbauen, ist wahrscheinlich auch gewünscht (hört sich irgendwie nach einer Uni-Aufgabe an).

        Beispielsweise so:

        function -> name '(' parameterlist ')' body
        parameterlist -> ( declaration ( ',' declaration )* )?
        body -> '{' statement* '}' 'end'
        statement -> declaration | assignment | return
        declaration -> datatype name
        datatype -> 'int' | 'float'
        assignment -> name ':=' expression
        return -> 'return' name
        expression -> ...
        name -> ...
        ...

        Expression kann man jetzt beliebig rekursiv definieren, kommt darauf an was alles gewünscht ist (Klammerung, Operatoren). Name ist einfach eine Zeichenfolge.

        Grüße, Robert

      • Antwort von nach 2 Tagen 0 hilfreich
        Re^3: Backus-Naur-Notation

        Hallo,
        ja, daß würde zumindest Sinn machen.

        Gruss
        Enno

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!