Kontextfreie Grammatik: Unterschied zwischen den Versionen
Zeile 3: | Zeile 3: | ||
[[Kategorie:Informatik-Abitur]] | [[Kategorie:Informatik-Abitur]] | ||
[[Kategorie:Informatik]] | [[Kategorie:Informatik]] | ||
<font color='red'>'''nur relevant für den Leistungskurs!'''</font> | |||
=Fachbegriffe= | =Fachbegriffe= | ||
Nicht-terminal-symbole, Terminal-Symbole, Startsymbol, Produktionsregeln, Ableitung (eines Wortes), Sprache | Nicht-terminal-symbole, Terminal-Symbole, Startsymbol, Produktionsregeln, Ableitung (eines Wortes), Sprache | ||
Version vom 29. März 2020, 14:36 Uhr
nur relevant für den Leistungskurs!
Fachbegriffe
Nicht-terminal-symbole, Terminal-Symbole, Startsymbol, Produktionsregeln, Ableitung (eines Wortes), Sprache
Definition
Eine Grammatik G wird durch ein 4-Tupel (N, T, S, P) definiert:
- N ist die Menge der Nichtterminalsymbole.
- T ist die Menge der Terminalsymbole.
- S ∈ N ist das Startsymbol.
- P ist die Menge der Produktionsregeln.
Eine kontextfreie Grammatik ist eine Grammatik, bei der alle Produktionen den folgenden Anforderungen genügen:
- links darf nur ein Nichtterminal stehen.
- rechts darf eine (endliche) Kombination von Terminal- und Nichtterminal-Symbolen stehen.
Somit ist klar, dass jede reguläre Grammatik auch eine kontextfreie Grammatik ist.
Beispiel
Die Sprache L = {anbn} lässt sich mit einer kontextfreien Grammatik erzeugen:
- G= (N, T, S, P)
- Nichtterminalsymbole N = {S}
- Terminalsymbole T = {a,b}
- Startsymbol S = S
- Produktionsregeln P = {
- S → aSb | ε
- }
Beispiel für die Ableitung eines Wortes
Dass das Wort "aabb" zur Sprache L gehört, lässt sich durch folgende Ableitung zeigen:
- S → aSb → aaSbb → aabb
Bei der letzten Ableitung wurde das S durch nichts (ε) ersetzt.
Zusammenhang zum Kellerautomat
Jede kontextfreie Sprache lässt sich durch einen nicht-deterministischen Kellerautomat überprüfen.
Grenzen der kontextfreien Sprache
Die Sprache L = {anbncn} ist nicht kontextfrei.