View Full Version : [Frage] lösung zu bsp.2 prüf. 2.5.02?! (grammatik)
hab eigentlich schon geglaubt, dass ich morgen das grammatik-bsp. mit sicherheit schaffen würde - bis ich dieses besagte beispiel 2 bei der prüf. vom 2.5.02 gefunden habe... :ahhh: :confused:
kann mir da irgendwer mit einer lösung helfen?! ... danke!! :)
kannst du die Angabe mal posten - würd mich auch gerne verunsichern lassen...
klar, hier kommt sie... >;)
lass dich nicht verwirren, ist glaub ich gar nicht so schwer - oder gehts um die Fragen (b) und (c) ?
EGREP => Ausdruck {Ausdruck}
Ausdruck => Statement | ( Ausdruck ) |( Statement )
Statement => [ Zeichen ] [Operator]
Operator => +|*|?
Zeichen => Elemente {Elemente}
Elemente => 0|...|9|a|...|z|A|...|Z
Sollte meiner Meinung nach funktionieren...
Orange ist normale Sprache, unterstrichen und schwarz sind die Symbole/Zeichen
Ich kann dir nicht sagen, wie ich diesen Zeichenkauderwelsch HASSE
hmm, frage b) krieg ich schon hin, wenn ich die grammatik mal spezifiziert hab.
dabei hab ich aber folgende probleme:
- wie mach ich die "verkettung"? (oder ist etwa die das überflüssige, weil der automaten wörter ohnehin als solche liest?)
- "alternative": kann ich dem automaten einfach "|" => | sagen? oder muss ich ihm erklären, dass es 2 möglichkeiten von alternativen-kennzeichnung gibt, nämlich "alternative|" und "|alternative"? (oder brauch ich das nicht, weil das ja eh der ebnf-notation entspricht?)
- und wie mach ich das mit den ausdrucks-klammerung ()? kann man da irgendwie eine priorität vergeben, oder gibt's da eine andere möglichkeit?
... und wenn das alles in =>-Form aufgeschrieben werden kann, was bleibt dann noch für c) ?!
tja, also irgendwie hab ich das nicht so schnell runterschreiben können wie die anderen 2er-bspe...
wäre jedenfalls ziemlich beruhigend, wenn mir wer sagen könnte, wie das geht :idea: !
okay, jetzt hab ich zu lange zum schreiben gebraucht, ich meld mich gleich nochmal... :bounce:
ad b) Grammatik ist (wahrscheinlich) eindeutig, weil ich in zehn-minütiger Suche kein Wort mit mehreren Linksableitungen gefunden habe
ad c) Überflüssig ist in der Spezifikation alles, das mehr über die Bedeutung der Grammatik (also die Auswertungsfunktion) beschreibt (zb dass * ein mehrmaliges Vorkommen selektiert)
super - das sieht echt viel einfacher aus als erwartet... danke! :thumb:
und nochmal zur "alternative": du meinst also, dass es ganz egal ist, ob man dem automaten | (orange, also ebnf-notation) oder "|" (schwarz, also font) steht?
die alternativen-frage hast du inzwischen auch schon beantwortet - danke nochmal!! :)
Hab die Frage nicht ganz verstanden...
Falls du so meinst:
Der Automat liest ein unterstrichenes Zeichen einfach als Zeichen und denkt sich absolut nichts über dessen Funktion - Dass die Zeichen "zufällig" die gleichen sind wie in der EBNF-Notation ist egal und nur zur Verwirrung
toll, danke - da kann ich ja jetzt beruhigt schlafen :zzz: gehen... :applaus:
Original geschrieben von Filz
EGREP => Ausdruck {Ausdruck}
Ausdruck => Statement | ( Ausdruck ) |( Statement )
Statement => [ Zeichen ] [Operator]
Operator => +|*|?
Zeichen => Elemente {Elemente}
Elemente => 0|...|9|a|...|z|A|...|Z
Ich denke man sollte hier mit Epsilon beginnen oder? Weil Epsilon ist ja nicht gleich EGREP (Nur ein Hinweis: Falsche Startvariable : -1 Punkt ;) )
hast recht - danke für den hinweis! :cool:
Ausdruck => Statement | ( Ausdruck ) |( Statement )
das ist NICHT ganz RICHTIG .. weil Audruck rekursiv vorkommt..
und das sollte man bei EBNF vermeiden !!!
Original geschrieben von Filz
EGREP => Ausdruck {Ausdruck}
Ausdruck => Statement | ( Ausdruck ) |( Statement )
Statement => [ Zeichen ] [Operator]
Operator => +|*|?
Zeichen => Elemente {Elemente}
Elemente => 0|...|9|a|...|z|A|...|Z
Sollte meiner Meinung nach funktionieren...
Funktionieren wird es, denke ich auch. Aber: Es scheint so (wie ich aus verlässlicher Quelle weiß; danke Jimmy) als sei Rekursion nicht erlaubt oder führt zumindest zu Punkteabzügen.
Es müsste also heißen:
<snip>
Expression => Statement | ( Ausdruck ) | ( Statement )
Ausdruck => Statement { Statement }
Statement => [ Zeichen ] [Operator]
</snip>
Bitte Unterstreichungen gemäß obigem EBNF dazudenken. Hoffentlich is es richtig...
[edit] Und er war schneller :)
"sollte man bei EBNF vermeiden"
heißt das: es ist zwar nicht gern gesehen, aber geht?
oder heißt das: kann man so auf keinen fall lassen...?
okay, war zu langsam beim schreiben - hat sich mit deiner antwort schon erledigt :)
Erlaubt ist es glaub ich schon - die Grundbedingung (Kontextfreiheit) ist ja erfüllt - ich glaub aber es kommt mit Rekursionen einfach viel leichter (oder immer?) zu Mehrdeutigkeiten
ich hab bei der Okt. Pruefung wegen der Rekursion Punkteabzuege bekommen (Latex Beispiel: nichtleere Folge
Text => (a|...|z|A|...Z|0|...1|.|,|Space) {Text} IST FALSCH, stattdessen gehoert statt Text der ( ) - Klammerausdruck nochmals abgeschrieben
Ich meinte damit sequtentielle Rekursion
A => ....A...... geht nicht
indirekte Rekursion ist glaub aber schon erlaubt
A => B
B => A
Also einfach Rekursionen vermeiden - dann spart man sich nachher das Punkte-streiten
hoffentlich ist ein punktestreit erst gar nicht notwendig... :eek:
vBulletin® v3.7.1, Copyright ©2000-2008, Jelsoft Enterprises Ltd.