JavaScript promise rejection: Loading CSS chunk katex failed. (error: https://git.gaminggeneration.de/assets/css/katex.faca27c4.css). Open browser console to see more details. (33)
Files
.idea
Writerside
cfg
images
topics
02
04
Datenbanken
HCI
Informatik und Gesellschaft
Projektmanagement
Rechnernetze
Software Engineering
Theoretische Informatik
Hausaufgaben
Übungen
01Einleitung.md
02_GrundlagenFormaleSprachen.md
03_GrundlagenEndlicherAutomaten.md
04_GrenzenGroesseEA.md
05_GrundlagenGrammatiken.md
06_ReguläreSprachen.md
06
pdf
StartPage.md
c.list
in.tree
v.list
writerside.cfg
.gitlab-ci.yml
README.md
zusammenfassungen/Writerside/topics/04/Theoretische Informatik/05_GrundlagenGrammatiken.md
David Schirrmeister 195bce294a update
2025-06-15 16:30:49 +02:00

3.4 KiB
Raw Blame History

Formale Grammatiken

Grundbegriffe

Formale Grammatik

  • 4-Tupel
    • G=(Σ,V,S,R)
      • Σ: Alphabet
      • V: endliche Menge Variablen V ∩ Σ = \not O
      • S ∈ V: Startvariablen
      • R: endliche Menge Regeln
        • Form: α → β, α, β ∈ (Σ V)^* mit α \not= ε

Beispielgrammatik

  • G = (\{a,b\},\{S\},S,\{S→aSb, S→ε\})
    • Alphabet a,b
    • Variable S
    • Startvariable S
    • zwei (Ersetzungs-) Regeln:
      • rekursiv
      • leeres Wort

Funktion einer formalen Grammatik

  • Bilden von Wörtern durch Ableitungen
  • starte mit dem Startsymbol S
  • solange noch Variablen vorkommen oder man Lust hat:
    • wende eine Regel α → β an, um α durch β zu ersetzen
  • das Ergebnis ist eine Zeichenkette w ∈ Σ^*
    • ein aus G abgeleitetes Wort

Komplexität von Grammatiken

  • Je mehr Variablen links UND rechts stehen, desto schwerer wird es sie zu verstehen
    • Dadurch wird auch das Wortproblem schwerer

Übersicht Grammatiken

image_920.png

Typ Erlaubte Regeln Was kann man damit beschreiben? Beispielregel Beispielsprache
Regulär (RG) A → aB
A → a
Nur ganz einfache Muster, kein Zählen A → aB
B → b
aⁿb (z.B. ab, aab, aaab)
Kontextfrei (CFG) A → γ (γ ist beliebige Folge aus Terminals und Nichtterminals) Einfache Klammerungen und Zählen S → aSb
S → ε
aⁿbⁿ (z.B. ab, aabb, aaabbb)
Kontextsensitiv (CSG) αXβ → αwβ (w darf nicht kürzer sein als X) Mehr Kontextabhängigkeit, z.B. 3-mal Zählen aXb → abb (wenn X zwischen a und b steht) aⁿbⁿcⁿ (z.B. abc, aabbcc)

Erklärungen:

  • Regulär: Nur ganz einfache Strukturen keine verschachtelten oder abhängigen Teile.
  • Kontextfrei: Kann einfache Paare wie aⁿbⁿ beschreiben (z.B. gleich viele a und b).
  • Kontextsensitiv: Kann komplexe Abhängigkeiten darstellen z.B. gleich viele a, b und c.

Reguläre Grammatiken

  • Einfachste Grammatiken

(Rechts-)reguläre Grammatiken

  • für alle α → β aus R gilt
    • α ∈ V
      • links steht genau eine Variable
    • β = u*v mit u ∈ Σ^*, v ∈ V \{ε\}
      • rechts steht wenn überhaupt, dann nur genau eine Variable am Ende
  • Worte wachsen von links nach rechts

Kontextfreie Grammatiken

  • Hauptsache α ist ein Teil der Variablen

Kontextsensitive Grammatiken

  • für alle α → β aus R AUßER S→ε\} gilt:
    • α = u * X * v mit u,v ∈(Σ V)^* und X ∈ V
      • Symbol nur ersetzen, wenn bestimmte andere Symbole davor und danach stehen
        • Symbole davor und danach sind der Kontext
    • β = u*w*v mit w ∈ (Σ V)^+
      • Beim Ersetzen muss das neue Stück mindestens so lang sein wie das alte, also das Wort darf nicht kürzer werden.
    • S kommt nicht in β vor
      • S steht nie auf der rechten Seite

Monotone Grammatiken

  • Wenn |β| ≥ |α|
  • Keine Grammatik, die das leere Wort erzeugt ist monoton