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

Informatiker Board » Themengebiete » Theoretische Informatik » formale Sprachen » EBNF Grammatik » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen EBNF Grammatik
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Retro10
Grünschnabel


Dabei seit: 21.01.2017
Beiträge: 3

EBNF Grammatik Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

21.01.2017 21:23 Retro10 ist offline E-Mail an Retro10 senden Beiträge von Retro10 suchen Nehmen Sie Retro10 in Ihre Freundesliste auf
joho
Grünschnabel


Dabei seit: 21.01.2017
Beiträge: 4

EBNF Grammatik Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
21.01.2017 22:51 joho ist offline Beiträge von joho suchen Nehmen Sie joho in Ihre Freundesliste auf
Retro10
Grünschnabel


Dabei seit: 21.01.2017
Beiträge: 3

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

Dieser Beitrag wurde 7 mal editiert, zum letzten Mal von Retro10: 22.01.2017 13:57.

22.01.2017 13:50 Retro10 ist offline E-Mail an Retro10 senden Beiträge von Retro10 suchen Nehmen Sie Retro10 in Ihre Freundesliste auf
joho
Grünschnabel


Dabei seit: 21.01.2017
Beiträge: 4

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.
22.01.2017 16:07 joho ist offline Beiträge von joho suchen Nehmen Sie joho in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » formale Sprachen » EBNF Grammatik