Sprachen/Grammatiken – eine Wiederholung

Werbung
Technische Universität München
Sprachen/Grammatiken – eine Wiederholung
• Was sind reguläre Sprachen?
• Eigenschaften regulärer Sprachen
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Sprachen
Begriffe
• Symbol: unzerlegbare Grundzeichen
• Alphabet: endliche Menge von Symbolen
• Zeichenreihe: endliche Folge von Symbolen eines best. Alphabets
• Sprache: eine Menge von Zeichenreihen über einem Alphabet
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Sprachen
Sprache: jede beliebige Menge von Zeichenreihen aus 
Es gilt:
Ø: die leere Sprache ist eine Sprache
{}: die Sprache bestehend aus der leeren Zeichenreihe ist eine
Sprache
•  : die Sprache, die aus der Menge aller Zeichenreichen über
einem Alphabet besteht, ist eine Sprache
•
•
•
•
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Reguläre Sprachen
• Definition: Reguläre Sprache
Eine Sprache, d.h. eine Menge von Zeichenreihen, ist regulär,
wenn sie die leere Menge, das leere Zeichen, ein
Elementarzeichen, oder aus diesen Elementen durch Vereinigung,
Verkettung oder der Hüllenbildung gebildete Mengen enthält.
• Kleene, 1956: 35:
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Reguläre Sprachen
• Operationen auf regulären Sprachen
Vereinigung (Summe)
L1  L2  { p | p  L1  p  L2}
Konkatenation (Produkt, Verkettung)
L1  L2  { pq | p  L1  q  L2}
Beispiel
X = {ein, zwei}, Y = {mal, fach} ,
XY = {einmal, einfach, zweimal,
zweifach}
Potenz
L0  { }, Ln1  L  Ln für n  0
Hülle (Iteration, Stern)
L*   Ln , L   Ln , L*  L  { }
n 0
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
n1
Technische Universität München
Reguläre Sprachen
• Reguläre Sprachen können auch durch reguläre Ausdrücke
repräsentiert werden
• Ausdrücke, die aus Zeichen (-klassen) mithilfe von
| (Alternative), * (Iteration), (Konkatenation) ? (Option)
... aufgebaut sind, heißen reguläre Ausdrücke
exp ::=
float ::=
(e|E)(+|-)? digit digit*
digit digit* exp | digit* (digit . | . digit) digit* exp?
• Regulärer Ausdruck für alle Gleitkommazahlen
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Sprachen – Grammatiken
Noam Chomsky *1928
―From now on I will consider a language to be a set (finite or infinite) of
sentences, each finite in length and constructed out of a finite set of
elements.
All natural languages in their spoken or written form are languages in
this sense, since each natural language has a finite number of
phonemes (or letters in its alphabet) and each sentence is
representable as a finite sequence of these phonemes (or letters),
though there are infinitely many sentences.
Similarly, the set of ‘sentences‘ of some formalized system of
mathematics can be considered a language. (...)
The grammar of L will thus be a device that generates all of the
grammatical sequences of L .―
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Sprachen – Grammatiken
• Um eine (unendliche) Sprache angeben zu können, benötigt man
eine endliche Beschreibung dieser Sprache. Diese existiert nur
dann, wenn alle Wörter der Sprache einem bestimmten
Bildungsgesetz folgen.
• In der Theorie der formalen Sprachen werden Grammatiken zur
Beschreibung von Sprachen verwendet:
• Eine Grammatik ist ein 4-Tupel G = (V, T, P, S)
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Sprachen – Grammatiken
• Eine Grammatik ist ein 4-Tupel G = (V, T, P, S)
– V ist das Alphabet der Variablen oder Nicht-Terminale —
Begriffe, die durch Regeln erklärt werden.
– T ist das Alphabet der Terminal oder Tokens — Symbole und
Namen, die so in den Wörtern der Sprache übernommen
werden.
Hierbei gilt: V ∩ T = ∅, A = V ∪ T ist das Gesamtalphabet
– P ⊆ (A* \ T *) × A* eine endliche Relation; die Elemente von P
heißen Produktionen oder Ersetzungsregeln
– S ist eine spezielle Variable, das Startsymbol.
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Sprachen – Grammatiken
• Nach Chomsky (50er Jahre) werden 4 Sprachklassen
unterschieden, je nach der Struktur der Grammatiken, durch die
sich die zugehörigen Sprachen ableiten lassen
 (Chomsky-Hierarchie)
• Reguläre Sprachen
• Kontextfreie Sprachen
• Kontextsensitive Sprachen
• Allgemeine Sprachen
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Sprachen – Grammatiken
• Für eine kontextfreie Grammatik gilt:
P ⊆ V × A*
– In jeder Regel muss auf der linken Seite genau ein nicht-terminales
Symbol stehen und auf der rechten Seite kann eine beliebige (auch
leere) Folge von terminalen und nichtterminalen Symbolen stehen.
• Für eine reguläre Grammatik gilt:
P ⊆ V × (T  TV  {})
– auf der rechten Regel-Seite darf höchstens ein Terminalsymbol
auftreten und – wenn dies der Fall ist – noch höchstens ein
Nichtterminalsymbol. Das Nichtterminalsymbol muss (bei Auftreten)
immer vor oder immer hinter dem Terminalsymbol stehen, je nachdem
spricht man von linksregulären oder rechtsregulären Grammatiken.
• .
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Sprachen – Grammatiken
• Sei G = (V, T, P, S) eine (kontextfreie) Grammatik, so ist
∗
L(G) = { w  T* | S w}
die von G erzeugte Sprache.
• L(G) umfasst also genau die Wörter über dem terminalen Alphabet
T, für die eine Ableitung (endlicher Länge) besteht, die beim
Startsymbol S beginnt.
• Beispiel
G1 = ({S}, {a, b}, P , S) mit P = { S  aSb, S  ab }
Einige Ableitungen:
S  ab S  aSb  aabb S  aSb  aaSbb  aaabbb
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Sprachen – Grammatiken
Charakteristische Eigenschaften regulärer Grammatiken:
• Mit einer Regel der Form S  aS hat man keine Kontrolle darüber,
wie oft sie zur Ableitung angewandt wird, daher kann man alle
Wörter an, n ≥ 0, erzeugen
• an bm kann durch eine reguläre Grammatik erzeugt werden
• Die Restriktion n = m kann aber nicht erzwungen werden für
beliebig lange Wörter
• ∀k (≥0) kann man eine reguläre Grammatik formulieren, die alle
anbn mit n ≤ k erzeugt, indem man die endlich vielen Produktionen
für alle Fälle von 0 bis k direkt in die Grammatik schreibt!
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Ableitungsbäume
• Sei A  w eine Regel, mit |w| = k,
wobei w = w1w2…wk die Darstellung durch Symbole des Alphabets
ist.
• Dann existiert ein zu A  w1w2…wk korrespondierender Baum des
Verzweigungsgrades k mit Tiefe 2, der Wurzel A und den Blättern
w1, w2,…, wk.
A
w1
w2
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
wk
Technische Universität München
Ableitungsbäume
• Sei S  u1  u2  u3 …  w die Ableitung eines Wortes
w  L(G), so kann ein Ableitungsbaum zu dieser Ableitung gebildet
werden, indem die zu den verwendeten Regeln
korrespondierenden Bäume „konkateniert― werden.
S
• Beispiel: G1 = ({S}, {a, b}, P , S)
mit P = { S  aSb, S  ab }
S  aSb
S
S
b
S
S
 aaSbb
a
a
b
a
a
S
b
b
 aaabbb a
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
b
Technische Universität München
Automaten
•
•
•
•
sind abstrakte Computermodelle
haben Wörter als Eingabe
können eine Eingabe entweder akzeptieren oder nicht
lösen ein Wortproblem, wenn sie genau die Wörter der
zugehörigen Sprache akzeptieren
• Die Menge der von einem Automaten akzeptierten Wörter heißt die
Sprache des Automaten
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Sprachen - Automaten
• Zu jeder Sprachklasse der Chomsky-Hierarchie gibt es ein
passendes Automatenmodell
• Reguläre Sprachen

Endliche Automaten
• Kontextfreie Sprachen

Kellerautomaten
• Kontextsensitive Sprachen

Linear beschränkte TM
• Typ-0-Sprachen

Turingmaschinen (TM)
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Sprachen - Repräsentationsformen
• Verschiedene Sprachklassen in bestimmten
Repräsentationsformen finden Anwendung in heutigen
Softwareentwicklungen
• Reguläre Sprachen/Endliche Automaten 
(Web)Suchmaschinen
• Reguläre Sprachen/Reguläre Ausdrücke 
Pattern-Darstellung
• Kontextfreie Sprachen/Grammatik 
Definition von Parsern
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Automaten
• Ein (Deterministischer) Endlicher Automat (DEA) ist ein FŸ
ünf-Tupel
< Q, , , q0, F >
–
–
–
–
–
Endliche, nicht leere Menge von Zuständen Q
Eingabealphabet 
Übergangsfunktion 𝛿 ∈ (Q× ) → Q
†
Startzustand 𝑞0
Menge von EndzustŠ
änden F
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Automaten
• Zustandsübergangsgraphen: eine graphische Notation für
Automaten
– Ein Wort wird akzeptiert, falls es beginnend am Anfangszustand den Automaten
in einen Endzustand überführen kann
• Ein Wort beschreibt einen Weg durch den Automaten
– Die Sprache eines Automaten ist die Menge aller Wörter die er akzeptiert
h
>>
1
a
!
3
2
h
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
4
Technische Universität München
Automaten
• Lemma: Für jeden DFA A existiert eine reguläre Grammatik G mit
L(A) = L(G)
• Lemma: Für jede reguläre Grammatik G existiert ein DFA A mit
L(G) = L(A)
• Theorem: Reguläre Grammatiken und deterministische endliche
Automaten sind bezüglich ihrer Sprachen gleich mächtig
• Endliche Automaten liefern die operativen Werkzeuge zum Lösen
des Entscheidungsproblems für reguläre Grammatiken. Dieselbe
Funktion erfüllen nichtdeterministische Kellerautomaten
(kontextfreie Grammatiken), linear beschränkte Automaten
(kontextsensitive Grammatiken), und Turingmaschine (Typ-0
Grammatiken).
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Automaten
• Das Gedächtnis von Automaten
– Angenommen, der Automat A will ein Wort w erkennen
– Nachdem Anfangsteil u eingelesen wurde, befindet sich A in einem
Zustand q
– Ob er denn Rest v und damit w = uv akzeptiert hängt nur vom
aktuellen Zustand q ab
– q ist die einzige Information, die sich der Automat merken kann, nicht
aber wie er nach q gekommen ist
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Automaten
• DFA‘s haben ein endliches Gedächtnis!
• Beispiel: A soll die Sprache L = {an bn | n ≥ 0} erkennen
• Intuitiv: Geht nicht, denn nachdem k viele a‘s gelesen sind, müsste
sich der Automat k „gemerkt― haben, um nach der richtigen Anzahl
von b‘s in einen Endzustand zu gehen.
• A kann sich aber nur endlich viele verschiedene Informationen
merken; er kann nicht für jedes k  N (natürlich Zahlen) in einem
anderen Zustand sein
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Herunterladen