Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » formale Sprachen » EBNF Grammatik » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 4 Beiträge
joho

Zitat:
Jetzt z.B bei aabab zu a{(ab)}{a}

Das erste a stimmt

Genau, das a aus aabab deckt das erste a aus dem Ausdruck [latex]\underline{a}\{(ab)\}[b]\{a\}[/latex].

Zitat:
darauf folgt ab von aabab was wieder an der richtigen Position steht ("[latex]a\{(ab)\}[b]\{a\}[/latex]") danach folgt ab von aabab das b kann weggelassen werden zur Bedingung ( "[latex]a\{(ab)\}[b]\{a\}[/latex]" )und das a auch ? Ich verstehe nicht ganz inwiefern die Postionen der Buchstaben eine Rolle spielen. Anscheinend ja schon und wieder rum nicht.

Also die zwei ab aus aabab werden von [latex]\{(ab)\}[/latex] abgedeckt, da die geschweiften Klammer ja beliebig oft wiederholt werden können, wie du ja selber gesagt hast.
Das [latex][b][/latex] und das [latex]\{a\}[/latex] am Ende werden bei dem Wort aabab gar nicht benutzt.
Die Positionen spielen eine Rolle, da keine Gruppe bzw keine Buchstaben aus dem Ausdruck vor einem anderen benutzt werden darf, wenn er dahinter steht.
Zitat:
z.B bei ab ich nenne ab mal "Prüfterm" zur Bedingung [latex]a\{(ab)\}[b]\{a\}[/latex]

Das a steht an erster Stelle von ab. Dann folgt als Bedingung a{(ab)} so kann ich jetzt das {(ab)} weglassen oder muss ich dies sogar weil die Position von meinem "Prüfterm" ab nicht stimmmt.


Für das Wort [latex]ab[/latex] musst du dann das [latex]\{(ab)\}[/latex] weglassen, da sonst durch das [latex]a[/latex] von [latex]a\{(ab)\}[/latex] ja mindestens [latex]2  a[/latex] am Wortanfang stehen müssten.


Zitat:
Quasi, das ich aab als "Prüfterm" definieren müsste anstatt ab wenn die Bedigung a(ab) genannt worden wäre ? ab wäre bei der bestimmung von a(ab) falsch ?


Ja, bei a(ab) wäre aab auch ein akzeptiertes Wort und ab nicht.

Zitat:
Wenn ich die Bediung weiter mit ab durch gehe könnte ich ja {a} weglassen und zu beginn {(ab)} was passiert jetzt mit dem b von ab ? Muss dies irgendwie in die Bedingung eingebracht werden? Was man nach {(ab)}[b].. bei dem [b] machen könnte oder spielt das keine Rolle wahrscheinlich schon.


Das b muss auf jeden Fall auch mit abgedeckt sein. Genau wie alle anderen Buchstaben in einem Wort immer durch einen Teil des Ausdrucks abgedeckt sein müssen.
Im Fall von [latex]ab[/latex] und [latex]a\{(ab)\}[b]\{a\}[/latex] wäre es genau wie du geschrieben hast. Das [latex]a[/latex] wird durch das [latex]a[/latex] ganz am Anfang abgedeckt und das [latex]b[/latex] durch [latex][b][/latex]

Generell musst du dir überlegen ob sich irgendwie durch die Verwendung der einzelnen Teile des Ausdruck, das zu überprüfende Wort basteln lässt. Dabei können die optionalen Teile an jeder Stelle weggelassen werden oder natürlich auch öfter wiederholt im Falle der geschweiften Klammern.
Retro10

Hey,

danke für die schnelle Antwort. Die Erklärung war hifreich und habe immer noch Fragen zu diesen EBNF's. Bei uns im Skript ist das ganze so definiert:

•():HierkommtesaufdiegenauePositionan

•{}:Daskannbeliebig(kannauchunendlichsein)häufigstehen,oderüberhaupt
nicht.

• []:Dasstehteinmaloderüberhauptnicht.

Jetzt z.B bei aabab zu a{(ab)}{a}

Das erste a stimmt darauf folgt ab von aabab was wieder an der richtigen Position steht ("[latex]a\{(ab)\}[b]\{a\}[/latex]") danach folgt ab von aabab das b kann weggelassen werden zur Bedingung ( "[latex]a\{(ab)\}[b]\{a\}[/latex]" )und das a auch ? Ich verstehe nicht ganz inwiefern die Postionen der Buchstaben eine Rolle spielen. Anscheinend ja schon und wieder rum nicht.

z.B bei ab ich nenne ab mal "Prüfterm" zur Bedingung [latex]a\{(ab)\}[b]\{a\}[/latex]

Das a steht an erster Stelle von ab. Dann folgt als Bedingung a{(ab)} so kann ich jetzt das {(ab)} weglassen oder muss ich dies sogar weil die Position von meinem "Prüfterm" ab nicht stimmmt. Quasi, das ich aab als "Prüfterm" definieren müsste anstatt ab wenn die Bedigung [B]a(ab)
genannt worden wäre ? ab wäre bei der bestimmung von a(ab) falsch ?

Wenn ich die Bediung weiter mit ab durch gehe könnte ich ja {a} weglassen und zu beginn [B]{(ab)} was passiert jetzt mit dem b von ab ? Muss dies irgendwie in die Bedingung eingebracht werden? Was man nach {(ab)}[b].. bei dem [b] machen könnte oder spielt das keine Rolle wahrscheinlich schon.

Ok bei dem Editieren ist etwas mega schief gelaufen.. Hoffe das ganze ist noch übersichtlich
joho EBNF Grammatik

Hey,

also das erste [latex]a[/latex] von [latex]a\{(ab)\}[b]\{a\}[/latex] ist wie du als zweites vermutet hast eine Bedingung und bedeutet nichts anderes als, dass das Wort auf jeden Fall mit einem [latex]a[/latex] beginnen muss.

Du kannst es dir auch als [latex](a)\{(ab)\}[b]\{a\}[/latex] vorstellen, nur das man sich die runden Klammern um das einzelne [latex]a[/latex] auch sparen kann.

An den Wörtern [latex]aba[/latex] und [latex]aab[/latex] ändert dies jedoch nichts.


[latex]a\{(ab)\}[b]\{a\}[/latex] bedeutet ausgeschrieben:

Ein Wort wird akzeptiert wenn es mit einem [latex]a[/latex] beginnt. Daraufhin darf beliebig oft [latex]ab[/latex] folgen. Im Anschluss kann noch ein [latex]b[/latex] kommen und ganz zuletzt kann das Wort mit beliebig vielen [latex]a's[/latex] enden.

Weiter Beispielwörter die akzeptiert werden wären:

a, ab, aabb, aabab, abaa, aaaaaaa...

Ich hoffe das konnte dir irgendwie schon mal helfen. Sonst kannst du gerne noch weiter fragen.

LG
Retro10 EBNF Grammatik

Meine Frage:
Hallo,

ich verstehe nicht wie die im Anhang enthaltenen EBNF Grammatiken enstehen. z.B wenn dort nur a steht ohne eine Klammer wird sie z.B bei der ersten Reihe dem aba
vorne dran gehänht ? Mir fehlen auch die Begriffe um das besser zu Erklären.

Meine Ideen:
Hier ein Erklärungsversuch für diese Aufgabe

Bedingung: {a}[b]

aba: Das erste a von aba kann n-mal dargestellt werden und b ist vorhanden, da jedoch ein a noch hinten dran steht stimmt dies nicht Bedingung nicht erfüllt.

aab: aab das aa kann n-mal dargestellt werden dank {a} in der Bedingung. Das b steht da.

Bedingung: [a]b[a]

aba: Steht alles genau so da.

aab: Geht nicht weil das erste [a] wird noch gedeckt von aab dann das b von [a]b[a] wird nicht gedeckt weil aab das b nicht an zweiter Stelle steht. Deswegen falsch.

Bedingung: a{(ab)}[b]{a}

aba: So hier beginnen die Probleme... ich weiß nicht ob das a{... von a{(ab)}[b]{a} vor das aba gesetzt wird oder ob es eine Bedingung ist die erfüllt werden muss wie die anderen Symbole.

aab: Hier wieder das selbe Problem mit dem a von der Bedingung oben! Ich nehme mal an das a von der Bedingung wird vor das aab geschrieben also aab wird zu aaab. Es wird jetzt auch ziemlich schwierig das so zu Erklären...

Ich hoffe wirklich das , das irgendwie verständlich ist bzw irgendwie erklärt wie ich an diese Sache/Aufgabe heran gehe und wie viele tausend fehler ich mache. Könnte mir jemand sagen wie ein besserer und verständlicherer Lösungsansatz aussehen könnte. Oder irgendwie verdeutlichen wie das hier mit den EBNF's funktioniert finde gerade nichts im Internet und im Skript ist nichts hilfreiches.

Danke für jeden der sich die Mühe macht und sich das durchliest und vor allem den jenigen die sogar Antworten.!

Retro10 hat dieses Bild (verkleinerte Version) angehängt:
EBNF.png