Professional Documents
Culture Documents
#! /usr/bin/python
def Fib(x):
if x<2:
return 1
else:
return Fib(x-1)+Fib(x-2)
i = int(raw_input())
print "Fibonacci",i, "=", Fib(i)
Andere Programme/Systeme
Definition
Definition
Ein Wort uber ist eine endliche Folge von Elementen aus .
Beispiel: w1 = aabc und w2 = caba sind Worter uber 1 ;
w3 = 1110 und w4 = 0101 sind Worter uber 2 .
Die Lange eines Wortes w (bezeichnet mit |w|) ist die Anzahl der
Symbole in w.
Beispiel: |010| = 3.
Die Lange eines Wortes w (bezeichnet mit |w|) ist die Anzahl der
Symbole in w.
Beispiel: |010| = 3.
Das leere Wort ist das eindeutig bestimmte Wort der Lange 0 und
wird mit dem griechischen Buchstaben ( Lambda) bezeichnet.
(Beachte: ist nicht als Symbol eines Alphabets erlaubt.)
Es gilt || = 0.
Die Lange eines Wortes w (bezeichnet mit |w|) ist die Anzahl der
Symbole in w.
Beispiel: |010| = 3.
Das leere Wort ist das eindeutig bestimmte Wort der Lange 0 und
wird mit dem griechischen Buchstaben ( Lambda) bezeichnet.
(Beachte: ist nicht als Symbol eines Alphabets erlaubt.)
Es gilt || = 0.
= {x|n.(n N x 1..n )}
Wir haben
Definition
Definition
Die leere Sprache ist die Sprache, die keine Worter enthalt, und
wird mit bezeichnet. (Beachte: =
6 {}.)
Definition
Die leere Sprache ist die Sprache, die keine Worter enthalt, und
wird mit bezeichnet. (Beachte: =
6 {}.)
Die Kardinalitat einer Sprache L ist die Anzahl der Worter von L
und wird mit kLk bezeichnet.
Beispiel: k{00, 10}k = 2.
A B = {x x A x B};
A B = {x x A x B};
A B = {x x A x B};
Definition
die Differenz von A und B durch
A B = {x x A x 6 B};
Definition
die Differenz von A und B durch
A B = {x x A x 6 B};
A = A = {x x 6 A}.
Definition
Die Konkatenation (Verkettung) von Wortern u, v ist ein Wort
uv , das wie folgt definiert ist:
Ist u = v = , so ist uv = vu = .
Ist v = , so ist uv = u.
Ist u = , so ist uv = v .
Sind u = u1 u2 un und v = v1 v2 vm mit ui , vi , so ist
uv = u1 u2 un v1 v2 vm .
Beispiel:
{10, 1}0 = {},
{10, 1}1 = {10, 1},
{10, 1}2 = {10, 1}{10, 1} = {1010, 101, 110, 11},
{10, 1}3 = {10, 1}{10, 1}2 = {101010, . . .}.
Beispiel:
{10, 1}0 = {},
{10, 1}1 = {10, 1},
{10, 1}2 = {10, 1}{10, 1} = {1010, 101, 110, 11},
{10, 1}3 = {10, 1}{10, 1}2 = {101010, . . .}.
Es gilt: A+ {} = A .
Beispiel:
{10, 1}0 = {},
{10, 1}1 = {10, 1},
{10, 1}2 = {10, 1}{10, 1} = {1010, 101, 110, 11},
{10, 1}3 = {10, 1}{10, 1}2 = {101010, . . .}.
Es gilt: A+ {} = A .
Definition
Die Spiegelbildoperation fur ein Wort u = u1 u2 un ist
definiert durch
sp(u) = un u2 u1 .
Definition
Die Spiegelbildoperation fur ein Wort u = u1 u2 un ist
definiert durch
sp(u) = un u2 u1 .
u va v (w ) [uw = v ].
Grammatik
Abbildung: Quelle: TML Systems. TML Pascal: Users guide and Reference
Rothe & Leuschel (HHU Dusseldorf) Informatik IV 20 / 55
Grundbegriffe Worter, Sprachen und Grammatiken
Grammatik
Definition
Eine Grammatik ist ein Quadrupel G = (, N, S, P), wobei
ein Alphabet (von so genannten Terminalsymbolen) ist,
N eine endliche Menge (von so genannten Nichtterminalen) mit
N = ,
S N das Startsymbol und
P (N )+ (N ) die endliche Menge der Produktionen
(Regeln).
Dabei ist (N )+ = (N ) {}.
Regeln (p, q) in P schreiben wir auch so:
p q.
Rothe & Leuschel (HHU Dusseldorf) Informatik IV 24 / 55
Grundbegriffe Worter, Sprachen und Grammatiken
Grammatik
A q1 | q2 | | qn statt A q1
A q2
..
.
A qn
u `G v u = xpz, v = xqz,
u `G v u = xpz, v = xqz,
u `nG v u = x0 `G x1 `G `G xn = v
R1 = {S1 aS1 b | }.
R1 = {S1 aS1 b | }.
R1 = {S1 aS1 b | }
aSb
aaSbb ab
aaaSbbb aabb
aaaaSbbbb aaabbb
R1 = {S1 aS1 b | }
S
aSb
aaSbb ab
aaaSbbb aabb
aaaaSbbbb aaabbb
aaaaaSbbbbb aaaabbbb
aaaaaaSbbbbbb aaaaabbbbb
aaaaaaaSbbbbbbb aaaaaabbbbbb
aaaaaaaaSbbbbbbbb aaaaaaabbbbbbb
aaaaaaaaaSbbbbbbbbb aaaaaaaabbbbbbbb
aaaaaaaaaaSbbbbbbbbbb aaaaaaaaabbbbbbbbb
aaaaaaaaaaaSbbbbbbbbbbb aaaaaaaaaabbbbbbbbbb
aaaaaaaaaaaaSbbbbbbbbbbbb aaaaaaaaaaabbbbbbbbbbb
aaaaaaaaaaaaaSbbbbbbbbbbbbb aaaaaaaaaaaabbbbbbbbbbbb
und transitive Hulle von `G ist, d.h. die kleinste binare Relation,
die reflexiv und transitiv ist und `G umfasst.
und transitive Hulle von `G ist, d.h. die kleinste binare Relation,
die reflexiv und transitiv ist und `G umfasst.
Die von der Grammatik G erzeugte Sprache ist definiert als
L(G) = {w S `G w}.
und transitive Hulle von `G ist, d.h. die kleinste binare Relation,
die reflexiv und transitiv ist und `G umfasst.
Die von der Grammatik G erzeugte Sprache ist definiert als
L(G) = {w S `G w}.
L(G1 ) = L(G2 ).
Rothe & Leuschel (HHU Dusseldorf) Informatik IV 30 / 55
Grundbegriffe Worter, Sprachen und Grammatiken
R1 = {S1 aS1 b | }.
R1 = {S1 aS1 b | }.
aB
abC
abcS abc
abcaB
Rothe & Leuschel (HHU Dusseldorf) Informatik IV 33 / 55
Grundbegriffe Worter, Sprachen und Grammatiken
aB
abC
abcS abc
abcaB
abcabC
abcabcS abcabc
abcabcaB
...
R2 = { S2 aS2 BC | aBC,
CB BC,
aB ab, bB bb, bC bc, cC cc }.
aSBC aBC
aabbCC aaaaaSBCBCBCBCBC aaaaaBCBCBCBCBC aaaaSBBCCBCBC aaaaSBCBBCCBC aaaaSBCBCBBCC aaaSBBCBCC aaaaBCBBCCBC aaaaBCBCBBCC aaaabCBCBCBC aaaaBBCCBCBC aaaBBCBCC aaabCBBCC aaabBCCBC aaabcBCBC
aaabbbccc L(G2 ).
aaabbbccc L(G2 ).
S3 `G3 S3 + S3 ` G3 S3 S3 + S3
`G3 (S3 ) S3 + S3 `G3 (S3 + S3 ) S3 + S3
`G3 `G3 (a + a) a + a
(a + a) a + a L(G3 ).
S3 `G3 S3 + S3 ` G3 S3 S3 + S3
`G3 (S3 ) S3 + S3 `G3 (S3 + S3 ) S3 + S3
`G3 `G3 (a + a) a + a
(a + a) a + a L(G3 ).
Bemerkung:
Der Prozess des Ableitens von Wortern ist inharent
nichtdeterministisch, denn im Allgemeinen kann mehr als eine
Regel in einem Ableitungsschritt angewandt werden.
Bemerkung:
Der Prozess des Ableitens von Wortern ist inharent
nichtdeterministisch, denn im Allgemeinen kann mehr als eine
Regel in einem Ableitungsschritt angewandt werden.
Bemerkung:
Der Prozess des Ableitens von Wortern ist inharent
nichtdeterministisch, denn im Allgemeinen kann mehr als eine
Regel in einem Ableitungsschritt angewandt werden.
Bemerkung:
Der Prozess des Ableitens von Wortern ist inharent
nichtdeterministisch, denn im Allgemeinen kann mehr als eine
Regel in einem Ableitungsschritt angewandt werden.
Das heit, eine Grammatik ist ein syntaktisches Objekt, das ein
semantisches Objekt erzeugt, namlich ihre Sprache.
Bemerkung:
Es gibt viele unterschiedliche Notationen fur Grammatiken
Aufgabe: schauen wir uns die Handbucher der
Programmiersprachen noch einmal an: was sind die Terminale,
Nichtterminale, Regeln ? Gibt es Unterschiede ?
Hier eine Grammatik fur eine ganz kleine Untermenge der
deutschen Sprache:
= {a, b, c, . . . , A, B, C, . . . , }, N = {P, V, O}.
SPVO
P Er |Sie|Es
V angelt|baut|isst
O Fische|Schiffe|Himbeeren
Chomsky-Hierarchie
Definition
G = (, N, S, P) sei eine Grammatik.
G ist Typ-0-Grammatik, falls P keinerlei Einschrankungen
unterliegt.
Chomsky-Hierarchie
Definition
G = (, N, S, P) sei eine Grammatik.
G ist Typ-0-Grammatik, falls P keinerlei Einschrankungen
unterliegt.
Chomsky-Hierarchie
Definition
G = (, N, S, P) sei eine Grammatik.
G ist Typ-0-Grammatik, falls P keinerlei Einschrankungen
unterliegt.
Chomsky-Hierarchie
Definition
G = (, N, S, P) sei eine Grammatik.
G ist Typ-0-Grammatik, falls P keinerlei Einschrankungen
unterliegt.
Chomsky-Hierarchie
Definition
Eine Sprache A ist genau dann vom Typ i {0, 1, 2, 3},
wenn es eine Typ-i-Grammatik G gibt mit L(G) = A.
Chomsky-Hierarchie
Definition
Eine Sprache A ist genau dann vom Typ i {0, 1, 2, 3},
wenn es eine Typ-i-Grammatik G gibt mit L(G) = A.
Chomsky-Hierarchie
Definition
Eine Sprache A ist genau dann vom Typ i {0, 1, 2, 3},
wenn es eine Typ-i-Grammatik G gibt mit L(G) = A.
Chomsky-Hierarchie
Fakt
REG CF CS L0 .
Alle Sprachen
Typ-0-Sprachen
Typ-1-Sprachen (CS)
Typ-2-Sprachen (CF)
Typ-3-Sprachen (REG)
Chomsky-Hierarchie
Beispiel:
Offensichtlich sind die Grammatiken G2 und G3 aus dem vorigen
Beispiel kontextsensitiv.
Chomsky-Hierarchie
Beispiel:
Offensichtlich sind die Grammatiken G2 und G3 aus dem vorigen
Beispiel kontextsensitiv.
S1
Chomsky-Hierarchie
Beispiel:
Offensichtlich sind die Grammatiken G2 und G3 aus dem vorigen
Beispiel kontextsensitiv.
S1
(b) Tritt die Regel S auf, so darf S auf keiner rechten Seite einer
Regel vorkommen.
P = {S aSb | ab}.
P = {S aSb | ab}.
P = {S aSb | ab}.
{an bn n 0} = L {}
zu gewinnen.
Rothe & Leuschel (HHU Dusseldorf) Informatik IV 50 / 55
Grundbegriffe Die Chomsky-Hierarchie
P 0 = { S aS 0 b | ab gema 1.)
S 0 aS 0 b | ab gema 2.)
S } gema 3.)
Syntaxbaum
Um Ableitungen von Worten in Grammatiken vom Typ 2 oder 3
anschaulich darzustellen, verwenden wir einen wie folgt definierten
Syntaxbaum.
Syntaxbaum
Um Ableitungen von Worten in Grammatiken vom Typ 2 oder 3
anschaulich darzustellen, verwenden wir einen wie folgt definierten
Syntaxbaum.
Sei G = (, N, S, P) eine Grammatik vom Typ 2 oder 3, und sei
S = w0 `G w1 `G `G wn = w eine Ableitung von w L(G).
Syntaxbaum
Um Ableitungen von Worten in Grammatiken vom Typ 2 oder 3
anschaulich darzustellen, verwenden wir einen wie folgt definierten
Syntaxbaum.
Sei G = (, N, S, P) eine Grammatik vom Typ 2 oder 3, und sei
S = w0 `G w1 `G `G wn = w eine Ableitung von w L(G).
Die Wurzel (d.h. die Etage 0) des Syntaxbaums ist das
Startsymbol S.
Syntaxbaum
Um Ableitungen von Worten in Grammatiken vom Typ 2 oder 3
anschaulich darzustellen, verwenden wir einen wie folgt definierten
Syntaxbaum.
Sei G = (, N, S, P) eine Grammatik vom Typ 2 oder 3, und sei
S = w0 `G w1 `G `G wn = w eine Ableitung von w L(G).
Die Wurzel (d.h. die Etage 0) des Syntaxbaums ist das
Startsymbol S.
Etage i: Wird wegen der Regel A z im i-ten Ableitungsschritt
(wi1 `G wi ) das Nichtterminal A in wi1 durch das Teilwort z von
wi ersetzt, so hat der Knoten A im Syntaxbaum |z| Sohne, die
v.l.n.r. mit den Symbolen aus z beschriftet sind.
Syntaxbaum
Um Ableitungen von Worten in Grammatiken vom Typ 2 oder 3
anschaulich darzustellen, verwenden wir einen wie folgt definierten
Syntaxbaum.
Sei G = (, N, S, P) eine Grammatik vom Typ 2 oder 3, und sei
S = w0 `G w1 `G `G wn = w eine Ableitung von w L(G).
Die Wurzel (d.h. die Etage 0) des Syntaxbaums ist das
Startsymbol S.
Etage i: Wird wegen der Regel A z im i-ten Ableitungsschritt
(wi1 `G wi ) das Nichtterminal A in wi1 durch das Teilwort z von
wi ersetzt, so hat der Knoten A im Syntaxbaum |z| Sohne, die
v.l.n.r. mit den Symbolen aus z beschriftet sind.
Die Blatter des Baumes ergeben von links nach rechts gelesen w.
Rothe & Leuschel (HHU Dusseldorf) Informatik IV 52 / 55
Grundbegriffe Die Chomsky-Hierarchie
Syntaxbaum
Beispiel: S3
S3 + S3
S3 S3 a
( S3 ) a
S3 + S3
a a
Mehrdeutige Grammatik
Definition
Eine Grammatik G heit mehrdeutig, falls es ein Wort w L(G)
gibt, das zwei verschiedene Syntaxbaume hat.
Mehrdeutige Grammatik
Definition
Eine Grammatik G heit mehrdeutig, falls es ein Wort w L(G)
gibt, das zwei verschiedene Syntaxbaume hat.
Mehrdeutige Grammatik
Beispiel:
S3
S3 S3
( S3 ) S3 + S3
S3 + S3 a a
a a