P - Universität Wien

Werbung
Kapitel 4:Die Chomsky Hierarchie
Sprachen, Grammatiken, Automaten
Peter Brezany
Institut für Softwarewissenschaft
Universität Wien, Liechtensteinstraße 22
1090 Wien
Tel. : 01/4277 38825
E-mail : [email protected]
Sprechstunde: Dienstag, 11.30-12.30
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
1
Kapitel 4: Die Chomsky Hierarchie
Sei  ein beliebiges Alphabet. Eine Sprache haben wir als beliebige
Teilmenge L  * definiert. Wie lassen sich nun formale Sprachen
präzise definieren? - Vier Methoden sind denkbar:
1. Auflistung/Aufzählung aller Sprachelemente
- Die explizite Auflistung aller Sprachelemente ist nur für endliche
Sprachen (mit relativ wenigen Elementen) möglich und daher für
die meisten in der Praxis interessanten Sprachen irrelevant.
- Die Aufzählung aller Sprachelemente basiert auf der Benutzung
einer berechenbaren Funktion, deren Wertebereich gleich L ist.
Bemerkung: Eine Funktion, die sich durch ein Programm realisieren
läßt, heißt berechenbar.
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
2
2. Spezifikation eines formalen Ausdrucks
Ein Beispiel für diese Methode sind reguläre Ausdrücke, die beliebige
reguläre Sprachen beschreiben können. Zum Beispiel kann man die Menge
der Bezeichner einer Programmiersprache durch L = B(B+Z)* darstellen,
wenn B die Menge der Buchstaben und Z die Menge der Ziffern
repräsentiert.
Diese Methode hat allerdings begrenzte Mächtigkeit und ist nicht
allgemein auf Sprachklassen mit höherer Mächtigkeit anwendbar.
3. Grammatiken
Grammatiken lassen sich zur (rekursiven) Erzeugung der Sätze einer
Sprache benutzen.
4. Automaten
Automaten lassen sich zur Erkennung der Sätze einer Sprache
verwenden.
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
3
Die beiden zuletzt genannten Methoden haben für die Praxis die
größte Bedeutung. Die Chomsky Hierarchie (nach Noam Chomsky)
legt eine Hierarchie von vier Sprachklassen - Chomsky-Typ 0 bis
Chomsky-Typ 3 - fest und formalisiert die Beziehung der
zugehörigen Grammatik- und Automatenklassen.
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
4
Erzeugung und Erkennung von Sprachen
• Erzeugung von Sprachen
Die Erzeugung einer Sprache wird durch eine Grammatik spezifiziert.
Grammatiken lassen sich als spezielle Semi-Thue Systeme auffassen: Es wird ein
Verfahren angegeben, das aus einem Axiom (Startsymbol) und einer Menge von
Regeln (Produktionen) systematisch alle Sätze einer Sprache generiert.
Semi-Thue-Systeme (STS)
- Ein STS ist eine nichtleere, endliche Relation R  E* x E* auf dem
Alphabet E.
- Die Tupel der Relation nennt man Regeln oder Produktionen.
- Es werden Wörtern Zeichenketten durch andere Zeichenketten ersetzt.
Beispiel für ein STS:
E = {a,b,c,d,e},
R  E* x E
= { (ab, ad), (dc, ee), (e, b), (ad, ae), (eb, b), (abc, e) }
oder in Regelschreibweise: ab  ad
dc  ee
e  b
ad  ae
eb  b
abc  e
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
5
Beispiel für ein STS (Fortsetzung):
Sei gegeben v = abc, w = aeb, so kann gezeigt werden, dass sich mit Hilfe des
oben angegebenen Semi-Thue-Systems w aus v ableiten läßt.
v = abc  adc  aee  aeb = w
also gilt: v (*) w
Für Semi-Thue-Systeme hat sich gezeigt, dass es kein allgemeines Verfahren
gibt, mit dem man für beliebige Wortpaare v und w entscheiden kann, ob
v (*) w gilt oder nicht.
Daher wurden von einem amerikanischen Linquisten Noam Chomsky Modifikationen
an den allgemeinen Semi-Thue-Systemen vorgenommen, durch die man Sprachklassen erhält, die entscheidbar sind.
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
6
• Erkennung von Sprachen
Sei L  *. Wir definieren zwei Typen von Erkennungsverfahren.
- Entscheidbarkeit
Es wird ein Verfahren spezifiziert, das für jedes Wort w  *
entscheidet, ob w  L oder nicht w  L.
- Semi-Entscheidbarkeit
Es wird ein Verfahren spezifiert, das für jedes Wort w  *
entscheidet, ob w  L.
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
7
Entscheidbarkeit eines Problems 
Instanz I
algorithmischer Test
auf die
problem-spezifische
Eigenschaft P
JA!
I hat die Eigenschaft
P
NEIN!
I hat die Eigenschaft
P nicht.
Semi-Entscheidbarkeit eines Problems 
Instanz I
P.Brezany
algorithmischer Test
auf die
problem-spezifische
Eigenschaft P
„Hat die Eigenschaft P!“
falls I die Eigenschaft
P hat.
Ist nicht definiert (z.B. hält
nicht an), falls die Eigenschaft
P nicht hat.
Institut für Softwarewissenschaft – Universität Wien
8
Typ-0 Grammatiken
Definition: Eine Typ-0 Grammatik ist ein Quadrupel
G = ( N,
, P, S )
wobei N,  und S die gleiche Bedeutung wie bei KFG haben
und wir das Gesamtalphabet ebenfalls mit  bezeichnen. Für die
Menge der Regeln, P, gilt:
P  *N* x *, endlich

Regeln einer Typ-0 Grammatik sind also von der Form   , wobei
 und  Worte über dem Gesamtalphabet sind, mit der zusätzlichen
Bedingung, dass  mindestens ein Nichtterminalzeichen enthält. Wie bei
KFG lassen sich Regeln als Vorschriften für Textersetzungen in Worten
aus * interpretieren, wobei allerdings Teilworte (die als linke Seite
einer Regel auftreten) und nicht nur (wie bei KFG) einzelne Nichtterminalsymbole ersetzt werden können.
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
9
Auf dieser Grundlage läßt sich wie bei KFG auf der Basis von P eine
Ableitungsrelation  in * definieren und in völlig analoger Weise
die von der Grammatik erzeugte Sprache, L(G), definieren.
Eine Sprache, die von einer Typ-0 Grammatik erzeugt wird, heißt
Typ-0 Sprache.
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
10
Beispiel:
Eine Typ-0 Grammatik, die { ai | i ist eine positive Potenz von 2 }
erzeugt, ist im folgenden gegeben:
1)
2)
3)
4)
S  ACaB
Ca  aaC
CB  DB
CB  E
5)
6)
7)
8)
aD  Da
AD  AC
aE  Ea
AE  
A und B dienen als linke und rechte Markierungen des Endes der Satzformen; C ist eine
Markierung, die durch aus a bestehenden Zeichenketten zwischen dem A und B läuft und
dabei deren Anzahl durch Produktion (2) verdoppelt.
S 1 ACaB 2 AaaCB 4 AaaE 7 AaEa 7 AEaa 8 aa
oder
S 1 ACaB 2 AaaCB 3 AaaDB 5 AaDaB 5 ADaaB 6 ACaaB  ...
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
11
Kontextsensitive (Typ-1) Grammatiken
Definition: Eine Typ-0 Grammatik heißt kontextsensitiv (KSG) oder
Typ-1 Grammatik, falls jede Regel in P eine der folgenden beiden
Formen besitzt:
Entweder
1B2  12
wobei B  N, 1, 2  * und   +
oder
S   und S tritt nicht auf der rechten Seite von Regeln auf. 
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
12
Beispiel – Kontextsensitive Sprache
Die Sprache L = {anbncn | n>0} ist kontextsensitiv.
P:
S  abc
S  aXbc
Xb  bX
Xc  Ybcc
bY  Yb
aY  aa
aY  aaX
G = ({S, X, Y}, {a, b, c}, P, S)
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
13
Beispiel:
Kontextfreie Grammatik:
G = ( {S}, {0, 1}, P, S )
P = { S  0S1, S   }
L(G) = { 0n1n | n  1 }
Aufgabe: Was für eine Sprache wird durch die folgende Typ-0 Grammatik
generiert:
S  S1B
S1  aS1b
bB  bbbB
aS1b  aa
B  
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
14
Zusammenfassung: Die Grammatiken
der Chomsky Hierarchie
Eine Chomsky Grammatik hat die Form G = (N, , P, S), wo N und  die
Alphabete der Nichtterminal- bzw Terminalsymbole darstellen, P die
Regelmenge ist und S  N das ausgezeichnete Symbol darstellt. Die
einzelnen Grammatikklassen werden durch die Form ihrer Regeln
unterschieden:
• Typ-0 (unbeschränkte):    mit   *N* und   *.
• Typ-1 (kontextsensitive): 1B2  12, mit B  N, 1, 2  *
und   +
oder S   und S tritt nicht auf der rechten Seite von Regeln auf.
• Typ-2 (kontextfrei): A   mit A  N,   *
• Typ-3 (reguläre):
- rechtslinear: A  x oder A  xB, mit A, B  N und x  *.
- linkslinear: A  x oder A  Bx, mit A, B  N und x  *.
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
15
Chomsky Hierarchie: Sprachklassen,Automaten,
und Hierarchiesatz
Den vier Grammatik- und Sprachklassen der Chomsky Hierarchie
entsprechen vier Klassen von Automaten. Die Automaten des Typs i
(0  i  3) erkennen genau die von Chomsky Typ-i Grammatiken
generierten Sprachen.
Diese Automatenklassen werden wie folgt bezeichnet:
Typ-0: Turingmaschinen
Typ-1: Linear beschränkte Automaten
Typ-2: Kellerautomaten (Stackautomaten)
Typ-3: Endliche Automaten
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
16
Hierarchiesatz:
Bezeichne Li, 0  i  3, die Familie der Chomsky Typ-i Sprachen. Dann
gilt
L3  L2  L1  L0
wobei alle Inklusionen echte Teilmengenbeziehungen repräsentieren. 
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
17
Bemerkungen zur Hierarchieeigenschaft
• Die Grammatiken bilden keine Hierarchie: Eine kontextfreie Grammatik
braucht nicht kontextsensitiv zu sein. Jedoch läßt sich für jede
kontextfreie Grammatik eine dazu äquivalente kontextsensitive
Grammatik konstruieren.
• Die Sprache
{ anbn | n  1 }
ist kontextfrei, aber nicht regulär.
• Die Sprache
{ anbncn | n  1 }
ist kontextsensitiv, aber nicht kontextfrei.
Aufgabe: Finden Sie eine kontextsensitive Grammatik, die L = { anbncn | n  1 } generiert.
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
18
Äquivalenz und Wortproblem
Definition: Zwei Typ-0 Grammatiken G und G´ heißen äquivalent genau
dann, wenn L(G) = L(G´).
Definition: Gegeben sei eine Sprache L  *. Wir betrachten das folgende
Problem: Gibt es ein Verfahren, das für ein beliebiges w  *
entscheidet, ob w  L oder nicht w  L? Man nennt dies das
Wortproblem für L.
Bemerkung:
• Für Typ-0 Sprachen ist das Wortproblem im allgemeinen nicht
entscheidbar.
• Für Typ-i Sprachen mit i  1 ist das Wortproblem entscheidbar.
P.Brezany
Institut für Softwarewissenschaft – Universität Wien
19
Herunterladen