developers-forum.de

Normale Version: Backus Nauer Form MINIPROGRAMM
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
darf ich vielleicht auf eure Hilfe hoffen das mir vielleicht jemand eine echt kleine Aufgabe löst.

Also folgende Aufgabenstellung:
-----------------------------------

Definieren Sie mittels entsprechenden Produktionen in BNF-Notation eine Sprache, die als gültige Wörter genau die Datumsangaben des Jahres 2009 enthält, jeweils angegeben im Format TT.MM.JJJJ.
Beispielsweise soll das Wort 24.10.2009 in der Sprache enthalten sein.

Das Nichtterminal datum ist folgendermaßen definiert:
datum ==> tagMonat“.2009“
Hallo,

es wäre schön, wenn du auch eine erste Idee oder unklare Stellen beschreiben würdest!

Der erste Schritt ist ja schon vorgegeben:

Code:
datum ==> tagMonat“.2009“


Ich nehme an, dass datum das Startsymbol ist. ".2009" beschreibt einen Teil der "Ausgabe". Also das entstehende Wort, welches man aus datum ableiten kann endet auf ".2009".

Es muss also noch eine Regel für tagMonat angegeben werden. Hierfür gibt es nur endlich viele Möglichkeiten, man könnte sie also auch einfach alle aufzählen, z.B.

Code:
tagMonat ==> "01.01" | "02.01" | ... | "31.01" | "01.02" | ... | "28.02" | ... | "31.12"


Wenn man es etwas eleganter lösen möchte teilt man tagMonat in Monate mit 28, 30 und 31 Tagen auf, also

Code:
tagMonat ==> ZAtag".02" | DTag".01" | DTag".03" | DETag".04" | ... | DTag".12"
ZATag ==> "01." | ... | "28."
DTag ==> "01." | ... | "30."
DETag ==> "01." | ... | "31."

Referenz-URLs