- ursprünglich das Gesprochene
- beinhaltet Aufzeichnung (Symbole, Zeichen, Schrift)
- jede Form der Kommunikation
- besteht aus allen möglichen Aussagen (Wörter und deren Bedeutung)
- Regeln zum Bilden von Wörter (Syntax, Grammatik, Aufbau, Konstruktion)
- Regeln zum Deuten der Wörter (Semantik, Bedeutung, Inhalt)
- natürliche Sprache
- Syntax und Semantik nicht absolut präzise
- z.B. Deutsch
- formale Sprachen
- Syntax und Semantik sind formal/präzise definiert
- z.B. bei Programmiersprachen
- Alphabet A (Menge der Symbole)
- Kleenesche Hülle A* (Menge aller Symbolkombinationen)
- Wort w in A*, Epsilon steht für das leere Wort
- Sprache L als Teilmenge von A*
- Eine formale Grammatik G ist ein 4-Tupel: G = (N, T, P, s)
- N: Menge von Nichtterminalsymbolen (Hilfsvariablen, Hilfsbezeichner)
- T: Menge von Terminalsymbolen (= Alphabet)
- P: Menge von Produktionen
- s: das Startsymbol (s in N)
- Gehört ein Wort w zu einer bestimmten Sprache?
- unlösbares bzw. nicht entscheidbares Problem
- Aufgabe des Compilers
- Typ 0: keine Einschränkungen, rekursiv aufzählbare Sprachen
- Es sind beliebige Produktionen zulässig
- Wortproblem kann für solche Grammatiken unlösbar sein
- Typ 1: kontextsensitive Grammatiken/Sprachen
- nichtverkürzende Grammatik
- sukzessive längere Wörter
- Wortproblem ist lösbar aber mit sehr grossem Aufwand
- Typ 2: kontextfreie Grammatiken/Sprachen
- auf linke Seite nur ein einziges Nichtterminalsymbol
- Wortproblem lösbar mit maximal O(n^3) (n ist Wortlänge)
- Typ 3: reguläre Grammatiken/Sprachen
- rechts ein Terminalsymbol (evtl. gefolgt von einem Nichtterminalsymbol)
- Wortproblem ist mit O(n) lösbar
liegen deshalb zwischen Typ 2 (kontextfrei) und Typ 1 (kontextsensitiv)
- Darsteluung der Syntax als Baum
- zur überprüfung ob die Sprache korrekt ist
- Diagramm zur Darstellung eienr formalen Sprache
- besteht aus den folgenden Elementen:
- Rechtecke als Platzhalter
- Ovale für Symbole aus dem Alphabet
- Verbindungspfeile zwischen Elementen für Wortkonstruktionen
- Backus Naur Form
<...>
Nichtterminalsymbole::=
ist definiert|
trennt Alternativen
- Erweiterte Backus Naur Form
(...)
Gruppierung: Inhalt zusammen betrachten[...]
Option: Inhalt steht einmal oder keinmal{...}
Wiederholung: Inhalt steht beliebig oft
- Klammern (rund oder eckig)
- Wiederholung (* oder ? oder {1,3})
- Konkatenation
- Alternativen (getrennt mit |)