Wann ist eine Grammatik kontextfrei?

Neue Frage »

Auf diesen Beitrag antworten »
Daniel07 Wann ist eine Grammatik kontextfrei?

Hallo,

ich habe letztens eine einfache Frage gesehen die ich nicht kurz und knapp beantworten konnte.

Wann ist eine Grammatik kontextfrei?

Kann die Frage kurz und knapp beantwortet werden? Wäre super.

Danke und Grüße
Daniel
 
Auf diesen Beitrag antworten »
Tobias

Eine Grammatik [latex](N, \Sigma, P, S)[/latex] ist kontextfrei, wenn es nur Produktionsregeln der Form [latex]A \to \alpha[/latex] gibt mit Nichtterminalsymbol [latex]A \in N[/latex] und Satzform [latex]\alpha \in (N \cup \Sigma)^\ast[/latex].

Also kurz: Durch Produktionsregeln darf immer nur ein Nichtterminalsymbol auf eine Satzform abgeleitet werden.
Auf diesen Beitrag antworten »
Daniel07

also nur die Möglichkeit und Art der Produktionsregeln?

Bei einer CfG können Produktionen der Art: S-> aBCa |aBC|Abc|AbC

und bei regulären Sprachen können nur Produktionen der Art: S-> aA|epsilon oder S->Aa|epsilon.

Wie werden enstehen wörter bei regulären Grammatiken?
Kannst du mir vielleicht ein kleines Beispiel geben?

Wie lautet die Grammatik zu abc?

So zB.:?
S->aB
B->bc |epsilon

??

Vielen Dank und Grüße
Daniel
Auf diesen Beitrag antworten »
Tobias

[latex]S \to abc[/latex] wäre die einfachste Möglichkeit.
 
Auf diesen Beitrag antworten »
Daniel07

ja aber wenn ich nur a erzeugen will dann würde es ja wie oben nicht gehen.

Dann
S->aA
A->bc|epsilon ????

Würde es so gehen?
Auf diesen Beitrag antworten »
Tobias

Ich glaube du musst erstmal sagen, welche reguläre Sprache du als Grammatik ausdrücken willst.
Auf diesen Beitrag antworten »
Daniel07

Also ich habe das letzte auf eine reguläre Sprache/Grammatik bezogen.

abc ist eine Wort das von einer regulären Grammatik erzeugt werden soll.

Alternativ hatte ich gedacht soll auch nur a| abc erzeugt werden können.

Also sowohl "a" als auch "abc" soll meine reguläre Grammatik erzeugen.

Gruß
Daniel
Auf diesen Beitrag antworten »
Tobias

Ja, dann stimmt deine Grammatik. Ist ja auch leicht zu überprüfen, da du A nur zu bc oder Epsilon ableiten kannst.
Auf diesen Beitrag antworten »
Daniel07

mir geht es mehr um die form.
Wollte den Unterschied von regulären und kontextfreien Produktionen verstehen.
Da es ja eine reguläre Grammatik sein sollte müsste dann die Produktion wie folgt nicht erlaubt sein: 1. S-> aAB

2. S->aAc ?

Fragen:
A: Ist die reguläre Grammatik wie bei 1 richtig? also mehrere Nichtterminale nach a ?

B: Die 2. Grammatik müsste allerdings eine CfG sein oder?


Danke und Grüße
Daniel
Auf diesen Beitrag antworten »
Tobias

Das kann man so allgemein nicht behaupten, denn

S-> aAB
A -> a
B -> b

erzeugt eine reguläre Sprache.
Auf diesen Beitrag antworten »
Daniel07

Ja dann sehe ich denn Unterschied zu einer CfG darin, dass man in der Lage ist folgendes zu machen: S-aABc also noch die Option noch ein Nichtterminal einzufügen.
Auf diesen Beitrag antworten »
Tobias

Nein, das hat garnichts damit zu tun. Denn du kannst soviele Nichtterminale wie du willst haben, wenn diese z.B. nur auf ein einfaches Terminalsymbol abgeleitet werden.
Auf diesen Beitrag antworten »
Daniel07

hmm..
OK, kannst du dann bitte je ein Beispiel zu einer reguläre und kontextfreien Grammatik nennen, so dass ich den Unterschiede sehe?

Danke und Grüße
Daniel
Auf diesen Beitrag antworten »
Daniel07

Das wäre sehr nett. Ich denke, dass ich es dann besser verstehen würde.

VLG
Daniel
Auf diesen Beitrag antworten »
Tobias

Und da findest du selber keine Beispiele?

Nimm z.B. die Palindrome
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »