www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Formale Sprachen" - EBNF und LL(*)-Grammatik
EBNF und LL(*)-Grammatik < Formale Sprachen < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Formale Sprachen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

EBNF und LL(*)-Grammatik: Erster Schritt
Status: (Frage) beantwortet Status 
Datum: 16:27 So 09.12.2012
Autor: DeRaaZuul

Aufgabe
Expr:: = Number OP Number OP Number
Number:: = (0..1)
OP:: = || | && | == | < | <= | + | - | * | /

Die Grammatik soll so geändert werden das Prioritäten und die Auswertung von links nach rechts berücksichtigt wird.

Dabei sind die Prioritätsstufen in absteigender Reihenfolge:
-Unäre Operatoren: - und !
-Multiplikative Operatoren: * und /
- Additive Operatoren: + und –
- Relationale Operatoren: ==, <= und <
- Konjunktion: &&
- Disjunktion: ||

Guten Tag,
ich habe leider keine Idee wie ich bei dieser Aufgabe überhaupt anfangen soll.
Meine erste Idee war für jeden Operator eine Expression zu schreiben und die Operator sind dabei geschachtelt, der Operator mit der niedrigsten Reihenfolge ist ganz oben in der Schachtelung. Die Idee hat aber zu keinen Erfolgt geführt.

PS: Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
EBNF und LL(*)-Grammatik: Antwort
Status: (Antwort) fertig Status 
Datum: 17:06 So 09.12.2012
Autor: felixf

Moin!

> Expr:: = Number OP Number OP Number
>  Number:: = (0..1)
>  OP:: = || | && | == | < | <= | + | - | * | /
>  
> Die Grammatik soll so geändert werden das Prioritäten und
> die Auswertung von links nach rechts berücksichtigt wird.
>  
> Dabei sind die Prioritätsstufen in absteigender
> Reihenfolge:
>  -Unäre Operatoren: - und !
>  -Multiplikative Operatoren: * und /
>  - Additive Operatoren: + und –
>  - Relationale Operatoren: ==, <= und <
>  - Konjunktion: &&
>  - Disjunktion: ||
>  Guten Tag,
>  ich habe leider keine Idee wie ich bei dieser Aufgabe
> überhaupt anfangen soll.
>  Meine erste Idee war für jeden Operator eine Expression
> zu schreiben und die Operator sind dabei geschachtelt, der
> Operator mit der niedrigsten Reihenfolge ist ganz oben in
> der Schachtelung. Die Idee hat aber zu keinen Erfolgt
> geführt.

Ist aber schon ein guter Ansatz. Mach das jetzt mit Expression fuer jede Operatorgruppe mit der gleichen Prioritaet. Dann sollte es gehen.

Wenn nicht, schreib doch mal explizit auf was du hast, damit wir das besser kommentieren koennen.

LG Felix


Bezug
                
Bezug
EBNF und LL(*)-Grammatik: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 22:14 Mo 10.12.2012
Autor: DeRaaZuul

Hallo Felix, hier ist meine Idee, ich habe aber das Gefühl das die OP Reihenfolge hier nicht richtig bearbeitet wird wird:

UnaereOp : MultiOp ( ('-' | '!') MultiOp)*
MultiOp : AddOp ( ('*' | '/') AddOp)*
AddOp : RealaOp ( ('+' | '-' ) RealaOp)*
RealaOp : KonOp ( ('==' | '<=' | '>=' ) KonOp)*
KonOp : DisOp ( '&&' DisOp)*
DisOp : Atom ( '||' Atom)*
Atom : Number | UneareOp


Bezug
                        
Bezug
EBNF und LL(*)-Grammatik: Antwort
Status: (Antwort) fertig Status 
Datum: 22:00 Di 11.12.2012
Autor: felixf

Moin!

> Hallo Felix, hier ist meine Idee, ich habe aber das Gefühl
> das die OP Reihenfolge hier nicht richtig bearbeitet wird
> wird:

Da hast du Recht.

Deine Grammatik macht aber noch anderen Unsinn, z.B. akzeptiert sie "1!2".

> UnaereOp : MultiOp ( ('-' | '!') MultiOp)*
>  MultiOp : AddOp ( ('*' | '/') AddOp)*
>  AddOp : RealaOp ( ('+' | '-' ) RealaOp)*
>  RealaOp : KonOp ( ('==' | '<=' | '>=' ) KonOp)*
>  KonOp : DisOp ( '&&' DisOp)*
>  DisOp : Atom ( '||' Atom)*
>  Atom : Number | UneareOp

Womit faengt man denn an? Also was ist Expr?

Und warum kommt bei Atom "UnaereOp" vor? Allgemein scheint mir die Reihenfolge genau falsch herum.

LG Felix


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Formale Sprachen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]