Ebnf

EBNF
Wir betrachten (f¨ur diese Aufgabe) eine einfache Sprache als eine Menge von Zeichenfolgen.
Mit EBNF k¨onnen nicht nur Programmiersprachen sondern auch solche einfachen Sprachen
beschrieben werden.

  1. Geben Sie ein EBNF Beschreibung f¨ur folgende Sprachen an.
    a) Die Sprache aller nat¨urlichen Zahlen in denen die Ziffer 9 genau einmal enthalten
    ist.
    b) Die Sprache aller nat¨urlichen Zahlen die durch 5 teilbar sind.
    c) Die Sprache aller nat¨urlichen Zahlen die durch 4 teilbar sind.
  2. Es seien die boolschen Variablen A, B, C und die in der Vorlesung besprochenen
    Operatoren ^, _, ¬ sowie die Klammerung () gegeben.
    Geben Sie die Syntax aller g¨ultigen boolschen Ausdr¨ucke mit den angegebenen Variablen
    und Operatoren in EBNF an.

Kann mir jemand bei der Aufgabe helfen… Ansätze usw. ich verstehe leider nur Bahnhof. Wie muss ich anfangen?
Danke!

Hallo,

w-w-w ist kein Hausaufgabenforum, und ein wenig mehr Eigeninitiative koenntest du schon zeigen. Du koenntest dich im Internet ein wenig ueber EBNF schlau lesen, dir ein paar Beispiele anschauen, und dann schreiben, wie weit du bei welcher Aufgabe kommst.

Dann helfen wir auch gerne weiter, wenn es mal hakt.

Gruesse,
Moritz

Ich habe mir Beispiele durchgelesen, verstehe es daran aber nicht. Ich weiss nicht, wie ich es auf diese Aufgabe anwenden soll. Und ich verlange auch keine Lösung, sondern nur einen Ansatz.

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

Hallo,

Ich habe mir Beispiele durchgelesen, verstehe es daran aber
nicht. Ich weiss nicht, wie ich es auf diese Aufgabe anwenden
soll. Und ich verlange auch keine Lösung, sondern nur einen
Ansatz.

Dann probiere ich dir mal einen Ansatz zu geben: Formulierungen wie „Zahlen, die genau eine 9 enthalten“ sind Beschreibungen, die einer generellen Formel (hier: Zahl = Folge von Buchstaben) und einer Einschraenkung (hier: „enthaelt genau eine 9“) enthaelt.

Diese Einschraenkung ist nicht direkt in EBNF formulierbar, d.h. du musst die Forderung so umformulieren, dass Bloecke entstehen, die man mit EBNF ausdruecken kann (z.B. „eine 9“ oder „Eine Zahl, die nur aus den Ziffern 0-8 besteht“). Wenn du diese Bloecke entsprechend verknuepfst, kannst du das Ergebnis leicht als EBNF formulieren.

Gruesse,
Moritz

Hallo,
unter: http://de.wikipedia.org/wiki/Erweiterte_Backus-Naur-…
findet man gute Beispiele.
Beispiel für dich:
b) Die Sprache aller nat¨urlichen Zahlen die durch 5 teilbar sind.

ZifferendungDurchFünf = „0“ | „5“ ;
ZifferAußerNull = „1“ | „2“ | „3“ | „4“ | „5“ | „6“ | „7“ | „8“ | „9“;
Ziffer = „1“ | „2“ | „3“ | „4“ | „5“ | „6“ | „7“ | „8“ | „9“; | „0“;
ZifferDurchFünf = ZifferAußerNull { Ziffer } ZifferendungDurchFünf | „5“;
Ich hoffe dies hilft dir weiter.
Gruss Peter