Informatik Grammatik?
Aufgabe war eine Grammatik zur Sprache L1 zu finden. Ist meine Lösung richtig ,oder verstößt sie gegen eine Regel ? Geht es auch noch einfacher ?
2 Antworten
Es ist schon Jahre her, dass ich mit damit beschäftigt habe, aber es gibt bestimmte Arten von Grammatiken laut der Chomsky-Hierarchie: https://de.wikipedia.org/wiki/Chomsky-Hierarchie
Mag eventuell sein, dass das für die Aufgabe egal ist, aber falls das von Bedeutung sein sollte, kann man deine Lösung nicht beurteilen.
Die Regeln an sich sind schon in Ordnung, aber versuch mal das Wort "ab" zu konstruieren. Das wird bei dir nicht klappen. Das musst du also noch überarbeiten.
Außerdem gibt es noch ein weiteres Problem, dass du die Regeln, nur ein a oder nur ein b zu machen getrennt hast.
Beispiel:
A (A - > aA1bB1)
aA1bB1 (A1 -> a, B1 -> bB1)
aabbB1 (B1 -> b)
aabbb (ist nicht in der Sprache)
Du musst es so formulieren, dass wenn du aufhörst a's erzeugen zu können, auch keine bs mehr erzeugt werden können.
Wir haben das bei uns auch immer so gemacht, dass wir eine Regel S--> irwas
gemacht haben, und jeder Ausdruck mit S startet (also S für Start).
Einfacher geht es auch, aber spoilern wär nicht so schön.
Ich mach ein paar Leerzeilen und wenn du es nach ner Zeit nicht schaffst, kannst du gerne runterscrollen : p
-
-
-
-
-
-
S -> aXb
X -> e | aXb
(e soll epsilon, also das leere Wort sein)
Das Problem Deiner Lösung: Du erzwingst (IMHO) nicht die Gleichheit der Länge.
Eine Ableitung nach a muß immer auch eine Ableitung nach b erzwingen.