Hallo,
dieses ganze Thema Reguläre Grammatik bereitet mir etwas Kopfschmerzen...Folgende Aufgabe habe ich zu Lösen:
Wir haben uns in der Vorlesung mit den allgemeinen EBNF-Regeln für die Beschreibung einer ganzen Zahl beschäftigt. Die dort verwendeten Regeln entsprachen aber noch nicht denen einer regulären Grammatik. Definieren Sie bitte eine reguläre Grammatik zur Beschreibung von ganzen Zahlen. Denken Sie daran, dass eine Zahl evtl. mit einem negativen Vorzeichen beginnen kann. Die Zahl wird ohne führende Nullen geschrieben, kann aber beliebig lang sein. Konstruieren Sie anschließend einen endlichen Automaten, der ganze Zahlen erkennen kann. Geben Sie die Übergangsfunktion δ sowohl in Form einer Tabelle als auch in Form eines Zustandsdiagramms an.
EBNF:
Mein Problem ist nun die EBNF-Notation in eine reguläre Grammatik zu fassen. Meine bisherige Lösung:
Zustandsdiagramm:
Im Anhang.
Kann mir jemand sagen ob das soweit korrekt ist?
dieses ganze Thema Reguläre Grammatik bereitet mir etwas Kopfschmerzen...Folgende Aufgabe habe ich zu Lösen:
Wir haben uns in der Vorlesung mit den allgemeinen EBNF-Regeln für die Beschreibung einer ganzen Zahl beschäftigt. Die dort verwendeten Regeln entsprachen aber noch nicht denen einer regulären Grammatik. Definieren Sie bitte eine reguläre Grammatik zur Beschreibung von ganzen Zahlen. Denken Sie daran, dass eine Zahl evtl. mit einem negativen Vorzeichen beginnen kann. Die Zahl wird ohne führende Nullen geschrieben, kann aber beliebig lang sein. Konstruieren Sie anschließend einen endlichen Automaten, der ganze Zahlen erkennen kann. Geben Sie die Übergangsfunktion δ sowohl in Form einer Tabelle als auch in Form eines Zustandsdiagramms an.
EBNF:
Code:
Zahl = ([-], EinBisNeun, {NullBisEins} | "0";
EinsBisNeun = "1" | "2" | ... | "9";
NullBisNeun = "0" | "1" | ... | "9";
Mein Problem ist nun die EBNF-Notation in eine reguläre Grammatik zu fassen. Meine bisherige Lösung:
Code:
G = (N, T, P, S);
N = {S, R, Z};
T = {0,1,2,...,9,+,-};
P = {
S --> +Z
S --> -Z
S --> 0..9
S --> 1..9R
R --> 0..9
R --> 0..9R
Z --> 1..9
Z --> 1..9R
}
Zustandsdiagramm:
Im Anhang.
Kann mir jemand sagen ob das soweit korrekt ist?