CFG Computerlinguistik?
G = ⟨{S}, {a, b, c, d}, {S → aSc | bSd | ε}, S⟩
Welche Sprache werde von dieser Grammatik generiert?
Ich verstehe welche Sprache damit erzeugt wird, da sie auch recht simpel ist, jedoch weiß ich nicht wie ich das aufschreiben soll. Kann mir Jemand weiterhelfen?
2 Antworten
![](https://images.gutefrage.net/media/user/malte314/1641413636271_nmmslarge__0_0_225_225_e90e21b3d3b0fa1d33f6e3dda80170d9.jpg?v=1641413636000)
Es handelt sich um eine klassische Klammer- oder Dycksprache (https://de.wikipedia.org/wiki/Dyck-Sprache) mit den Klammerpaaren a, c und b, d. Folglich sind in der Sprache alle wohlgeformten Klammerausdrücke.
Korrektion: Es ist die beschriebe Dycksprache geschnitten mit der regulären Sprache (a+b)*(c+d)*
![](https://images.gutefrage.net/media/user/Seliba/1545638851380_nmmslarge__50_50_900_900_16affb3cded9403134b038ede1849136.png?v=1545638851000)
Edit: Meine vorherige Antwort war leider vollkommen falsch, ich hatte mich verlesen
Die Sprache sollte folgende sein:
Einfach immer genauso viele a's wie c's und b's wie d's. ε ist mit x = y = 0 enthalten. Ist ohne Definition einer Funktion zum Zählen der Zeichen in einem Wort leider ziemlich informell. Eine wirklich schönere Möglichkeit gibt es meines Wissens nicht.
Die Antwort ist nicht präzise, denn nach deiner Beschreibung wäre das Wort »abad« in der Sprache, was es allerdings nicht ist. Zum Zählen der Vorkommnisse eines Symbols a in einem Wort w ist übrigens die Schreibweise |w|_a geläufig (das _a soll dabei freilich im Index stehen).