Wie erstelle ich diese reguläre Grammatik?
Kann mir jemand bei Aufgabe 8 a) helfen? Ich verstehe nicht, wie ich die Grammatik entwickeln soll. Es sollen Ausdrücke wie 089-KP7 rauskommen, steht ja am Anfang wie, weiß nur nicht wie ich es umsetzen soll. Danke im Voraus.
2 Antworten
S' -> 0A' | 1A' | ... | 9A'
A' -> 0B' | 1B' | ... | 9B'
B' -> 0C' | 1C' | ... | 9C'
C' -> -D'
D' -> AE' | BE' | CE' | ... | aE' | bE' | ... | 0E' | ... | 9E'
E' -> AF' | BF' | CF' | ... | aF' | bF' | ... | 0F' | ... | 9F'
F' -> A | B | C | ... | a | b | ... | 0 | ... | 9
wobei S' die Startvariable ist.
Ja, komplett formal müsstest du die Grammatik so definieren:
G = ({S', A', B', C', D', E', F'}, {0,1,...,9,-,A,B,...,Z,a,b,...,z}, P, S'), wobei P eben die oben genannten Produktionen sind. {S', A', B', C', D', E', F'} sind die Nicht-Terminale (oder auch Variablen) und {0,1,...,9,-,A,B,...,Z,a,b,...,z} die Terminalen (Alphabetssymbole).
Ah okay, danke, eine frage noch. Wie wird der Bindestrich oben in der Grammatik ausgedrückt und wo also welche Zeile, denke es ist C->D oder? aber woher weiß man dass es der Bindestrich ist
Durch die Produktion C' -> -D', da ja das Nicht-Terminal - erzeugt.
S -> dA
A -> dB
....
mit d Element aus [0..9], heißt S wird zu beispielsweise 5A, das wiederum zu 52B usw. usf. .
Wenn ihr keien Terminale gruppieren dürft, dann müßtest Du für jede Ziffer und jeden Buchstaben eine eigene Ableitung(Produktion) hinschreiben.
Vielen Dank, wie muss ich das am Anfang mit den Ausdrücken kennzeichnen? Muss man nicht immer in geschweiften Klammern angeben was die nicht Terminalen Symbole sind und was die terminalen Symbole sind? also bspw.: nT{0,1} und T{a,b}