Hallo,
ich habe hier eine Aufgabe die ich anhand EBNF Regeln lösen soll. Wäre nett, wenn ihr mir ein Feedback geben könnt, ob es richtig oder falsch ist.
Aufgabe:
1. Ein Wort hat mindestens einen Buchstaben.
2. Der erste und der zweite Buchstabe ist entweder a oder b.
3. Hat das Wort mehr als zwei Buchstaben, so steht entweder an der 3. bis 5. Stelle ein a oder an der dritten und vierten Stelle ein b.
4. Nach dem mit Regel 3. beschriebenen Wortteil folgen mindestens zwei
beliebige weitere Buchstaben.
5. Die Länge der Worte der Sprache ist nicht begrenzt.
Lösung:
1. Wort => (“a“|“b“)+
2. Wort => (“a“ “a“)|(“b“ “b“)
3. Wort =>((“a“ “a“)|(“a“ “b“)|(“b“ “b“)|(“b“ “a“)) ((“a“ “a“ “a“)|(“b“ “b“))
4. Wort => ((“a“ “a“)|(“a“ “b“)|(“b“ “b“)|(“b“ “a“)) ((“a“ “a“ “a“)|(“b“ “b“)) (“a“|“b“) (“a“|“b“)+
5. Sprache => (“a“|“b“)*
Danke
ich habe hier eine Aufgabe die ich anhand EBNF Regeln lösen soll. Wäre nett, wenn ihr mir ein Feedback geben könnt, ob es richtig oder falsch ist.
Aufgabe:
1. Ein Wort hat mindestens einen Buchstaben.
2. Der erste und der zweite Buchstabe ist entweder a oder b.
3. Hat das Wort mehr als zwei Buchstaben, so steht entweder an der 3. bis 5. Stelle ein a oder an der dritten und vierten Stelle ein b.
4. Nach dem mit Regel 3. beschriebenen Wortteil folgen mindestens zwei
beliebige weitere Buchstaben.
5. Die Länge der Worte der Sprache ist nicht begrenzt.
Lösung:
1. Wort => (“a“|“b“)+
2. Wort => (“a“ “a“)|(“b“ “b“)
3. Wort =>((“a“ “a“)|(“a“ “b“)|(“b“ “b“)|(“b“ “a“)) ((“a“ “a“ “a“)|(“b“ “b“))
4. Wort => ((“a“ “a“)|(“a“ “b“)|(“b“ “b“)|(“b“ “a“)) ((“a“ “a“ “a“)|(“b“ “b“)) (“a“|“b“) (“a“|“b“)+
5. Sprache => (“a“|“b“)*
Danke