diff --git a/Writerside/images/image_920.png b/Writerside/images/image_920.png
new file mode 100644
index 0000000..3566d11
Binary files /dev/null and b/Writerside/images/image_920.png differ
diff --git a/Writerside/images/image_921.png b/Writerside/images/image_921.png
new file mode 100644
index 0000000..c19e763
Binary files /dev/null and b/Writerside/images/image_921.png differ
diff --git a/Writerside/images/image_922.png b/Writerside/images/image_922.png
new file mode 100644
index 0000000..5b9fab2
Binary files /dev/null and b/Writerside/images/image_922.png differ
diff --git a/Writerside/in.tree b/Writerside/in.tree
index 05bf5bc..66eb1d8 100644
--- a/Writerside/in.tree
+++ b/Writerside/in.tree
@@ -149,6 +149,7 @@
+
diff --git a/Writerside/topics/04/Theoretische Informatik/05_GrundlagenGrammatiken.md b/Writerside/topics/04/Theoretische Informatik/05_GrundlagenGrammatiken.md
index 571b094..7f486c9 100644
--- a/Writerside/topics/04/Theoretische Informatik/05_GrundlagenGrammatiken.md
+++ b/Writerside/topics/04/Theoretische Informatik/05_GrundlagenGrammatiken.md
@@ -18,7 +18,7 @@
- rekursiv
- leeres Wort
-## Funktion einer formalen Grammatik
+#### Funktion einer formalen Grammatik
- Bilden von Wörtern durch Ableitungen
- starte mit dem Startsymbol $S$
- solange noch Variablen vorkommen oder man Lust hat:
@@ -26,3 +26,50 @@
- 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
+
+
+| 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
+
diff --git a/Writerside/topics/04/Theoretische Informatik/06_ReguläreSprachen.md b/Writerside/topics/04/Theoretische Informatik/06_ReguläreSprachen.md
new file mode 100644
index 0000000..155fe15
--- /dev/null
+++ b/Writerside/topics/04/Theoretische Informatik/06_ReguläreSprachen.md
@@ -0,0 +1,117 @@
+# Reguläre Sprachen
+> Eine Sprache ist dann regulär, wenn der Nerode-Index endlich ist
+- Bedeutet auch:
+ - Für alle NEAs existiert eine reguläre Grammatik
+ - Für alle regulären Sprachen existiert ein NEA
+
+## NEA → reguläre Grammatik
+- **Gegebener NEA**
+ - $N=(Σ,Q,q_s,Q_a,δ)$
+- **Definierbare Grammatik**
+ - $G_N=(Σ,V,S,R)$
+ - $V=Q$
+ - $S=q_s$
+ - $R$
+ - Regel `q → x q'` für alle $q,q' ∈ Q, x ∈ Σ$ mit $q' ∈ δ(q,x)$
+ - für alle Übergänge, welche in einen anderen Zustand übergehen, wird eine Regel der Form `Ausgangszustand → Übergang Endzustand` formuliert
+ - Regel `q → ε` für alle $q ∈ Q_a$
+ - alle akzeptierenden Zustände erhalten die Regel `Zustand → ε`
+ - Grammatik darf beendet werden ohne weitere Übergänge
+ - "Variable einfach entfernen"
+
+
+## Normalisieren einer Grammatik
+- Alle Regeln, die mehrere Terminale und eine Variable besitzen (_bspw. V→aaaX, V→abcX_)
+ - Aufsplitten in mehrere Regeln mit je einem Terminal und einer Variable
+ - Bspw:
+ - $V → abcX$
+ - wird zu
+ - $V → aV_1^{(abcX)}$
+ - $V_1^{(abcX)} → bV_2^{(abcX)}$
+ - $V_2^{(abcX)} → cX$
+- Alle Regeln, die ≥1 Terminale besitzen und keine Variablen (_bspw. V→aab, V→acb_)
+ - Aufsplitten in mehrere Regeln mit je einem Terminal und einer Variable
+ - Hinzufügen einer Regel, die zu ε führt
+ - Bspw:
+ - $V → abc$
+ - wird zu
+ - $V → aV_1^{(abc)}$
+ - $V_1^{(abc)} → bV_2^{(abc)}$
+ - $V_2^{(abc)} → cV_3^{(abc)}$
+ - $V_1^{(abc)} → ε$
+- Für alle Regeln der Form $V→W$
+ - Ersetzen durch $V → β$ für alle Regeln $W → β$
+ - Bspw:
+ - $V → aV | cX | W$
+ - $W → bX | ε$
+ - wird zu
+ - $V → aV | cX | bX | ε$
+ - $W → bX | ε$
+
+## Reguläre Grammatik → NEA
+1. Normalisiere Grammatik
+2. erstelle NEA
+ - $Q = V$
+ - $q_s = S ∈ Q$
+ - $Q_a := \{q ∈ Q | q → ε) ∈ R\}$
+ - Alle Variablen, die einen Übergang nach ε haben, sind akzeptierte Zustände
+ - $ δ$
+ - für alle $q, q' ∈ Q$ und $x ∈ Σ$ gilt
+ - $q' ∈ δ(q,x)$ existiert Regel $q → xq'$ in R
+ - Terminale werden zu Übergängen
+ - Nicht-Terminale sind der Zielzustand
+
+### Beispiel
+
+
+
+## Wortproblem für reguläre Sprachen
+### Der natürliche Algorithmus
+1. konstruiere NEA
+2. konstruiere Potenzmengenautomat A
+3. minimiere A und erhalte DEA
+4. überprüfe ob DEA Eingabe akzeptiert
+
+Vorteile:
+- einfache, allgemeine Lösung
+- Wiederverwendung des DEAs
+
+Nachteile:
+- Punkt 2 ist kostspielig
+ - exponentiell in Grammatikgröße
+ - insbesondere für einzelne Eingabe
+
+### NEA-basierter Algorithmus
+1. konstruiere NEA
+2. prüfe ob NEA Eingabe akzeptiert
+ - aktuellen Metazustand merken, weiterrechnen, ...
+ - 
+
+Vorteile:
+- kein Potenzmengenautomat
+ - keine exponentielle Laufzeit
+
+Nachteile:
+- teuer für wiederholtes Wortproblem
+ - NEA Wortproblem in O(|Q|²*|S|)
+ - DEA Wortproblem in O(|S|)
+
+## Reguläre Ausdrücke
+> rekursiv definierte Zeichenkette über dem Alphabet $Σ ∪ \{(,),|,.,*\}$
+
+- ε ist regulärer (Basis-) Ausdruck
+- für jedes $x ∈ Σ$ ist x ein regulärer (Basis-) Ausdruck
+- sind α und β reguläre Ausdrücke, dann auch
+ - $(α | β)$ (α oder β)
+ - $(α * β)$ (α und β)
+ - $ (α*)$ (kleensche Hülle (beliebig oft das Zeichen))
+- Zusätzlich erlaubt:
+ - weglassen des `*`
+ - weglassen unnötiger Klammern
+ - kleensche Hülle > Konkatenation > Vereinigung (Hoch vor Punkt vor Strich)
+- Zusätzliche syntaktische Merkmale
+ - $(a)^+$: mind. 1x a
+ - $(a)^?$: ggf. 1x a
+ - $[acfw]$: $a | c | f | w$ = a oder c oder f oder w
+ - $[^acfw]$: nicht eins von denen
+ - $[1-4]$: [1234]
\ No newline at end of file