Informatik 12 Kapitel 1 - Formale Sprachen

Fachschaft Informatik Informatik 12 Kapitel 1 - Formale Sprachen Michael Steinhuber K¨ onig-Karlmann-Gymnasium Alt¨ otting 6. November 2016 Folie 1/...
Author: Louisa Hoch
21 downloads 3 Views 3MB Size
Fachschaft Informatik

Informatik 12 Kapitel 1 - Formale Sprachen Michael Steinhuber K¨ onig-Karlmann-Gymnasium Alt¨ otting

6. November 2016 Folie 1/55

Inhaltsverzeichnis 1

Aufbau von Sprachen

2

Grammatiken formaler Sprachen

3

Endliche Automaten Erkennende Automaten Arbeitsweise eines endlichen erkennenden Automaten Noch ein Zustand f¨ur Automaten Weitere Optimierungen

4

Grenzen endlicher Automaten Kontextfreie Grammatik Chomsky Hierarchie Turingmaschine

Folie 2/55

1.1 Aufbau von Sprachen ¨ ¨ Ubung: Google Ubersetzer The alphabet of a formal language is the set of symbols, letters, or tokens from which the strings of the language may be formed.

Folie 3/55

Buchstabensalat Gm¨aeß eneir Sutide eneir elgnihcesn Uvinister¨at ist es nchit witihcg, in wlecehr Rneflogheie die Bstachuebn in eneim Wrot snid, das ezniige was wcthiig ist, ist, dass der estre und der leztte Bstabchue an der ritihcegn Pstoiion snid. Der Rset knan ein ttoaelr Bsin¨oldn sien, tedztorm knan man ihn onhe Pemoblre lseen. Das ist so, wiel wir nciht jeedn Bstachuebn enzelin leesn, snderon das Wrot als gseatems.a a

Quelle: www.fehlerhaft.de/wissen/buchstabensalat.html, Stand 22.09.2013

Folie 4/55

Folie 5/55

Definition Sprachen Es gibt nat¨urliche und formale Sprachen. • Nat¨ urliche Sprache: Der Wortschatz einer nat¨urlichen Sprache (z.B. Deutsch, Englisch) ist umfangreicher, wodurch eine h¨ohere Flexibilit¨at erreicht wird. Wegen folgender Punkte l¨asst sich eine nat¨urliche Sprache nicht als eine einfache Folge von Strings charakterisieren: • Es gibt unterschiedliche Wortsch¨ atze (Bayerisch,

Friesisch, ...). • Die Sprache ver¨ andert sich mit der Zeit (z.B. Fr¨aulein,

Innovation...). • Wortkonstrukte sind verst¨ andlich obwohl falsch (z.B.

Bstabchue). • Wortkonstrukte sind weder richtig noch falsch (z.B.

next to whom did you stand?“). ” Folie 6/55

Definition Sprachen (Fortsetzung) • Formale Sprache: • Eine formale Sprache (z.B. Java, Robot Karol) ist fest definiert, wodurch sie einfacher zu verarbeiten ist. • Eine formale Sprache ist definiert als eine Folge von String (= Sequenz von Terminal-Symbolen). Terminal-Symbole bilden die endliche Menge (bei englisch ca. 400000) der verf¨ ugbaren Worte, also den Wortschatz. • Ein String kann in Phrasen unterteilt werden (z.B. Nomen-Phrasen - np, Verb-Phrasen - vp, etc). Diese Phrasen erlauben die Erstellung von syntaktischen Regeln sowie eine Zuordnung von Semantik.

Folie 7/55

¨ Uberblick nat¨ urliche Sprache z.B. Deutsch, Englisch Besitzt eine hohe Flexibilit¨at, ist aber ungenau (z.B. Bank). Ver¨andert sich laufend. Wortkonstrukte sind verst¨andlich obwohl falsch.

Folie 8/55

formale Sprache z.B. Java, RobotKarol Ist eindeutig und ist daher einfacher zu verarbeiten. Wortschatz ist geringer.

Definition: Syntax und Symantik Programme sind Texte, die in Programmiersprachen (formale Sprachen), deren Syntax und Semantik genau definiert werden. • Die Syntax bestimmt, welche Programmtexte zul¨ assig, d.h., korrekt formuliert sind, sie wird i.a. formal definiert. • Die Semantik beschreibt die Bedeutung korrekt formulierter Programmtexte als Verarbeitungsschritte von Rechenprozessen, sie wird meist informell definiert.

Folie 9/55

Beispiel: Syntaxregeln Deutsch • R1: Satz → Subjekt Pr¨ adikat Objekt ”.”

Folie 10/55

Beispiel: Syntaxregeln Deutsch • R1: Satz → Subjekt Pr¨ adikat Objekt ”.” • R2: Subjekt → Substantiv | Artikel Substantiv

Folie 10/55

Beispiel: Syntaxregeln Deutsch • R1: Satz → Subjekt Pr¨ adikat Objekt ”.” • R2: Subjekt → Substantiv | Artikel Substantiv • R3: Pr¨ adikat → Verb

Folie 10/55

Beispiel: Syntaxregeln Deutsch • R1: Satz → Subjekt Pr¨ adikat Objekt ”.” • R2: Subjekt → Substantiv | Artikel Substantiv • R3: Pr¨ adikat → Verb • R4: Objekt → Substantiv | Artikel Substantiv

Folie 10/55

Beispiel: Syntaxregeln Deutsch • R1: Satz → Subjekt Pr¨ adikat Objekt ”.” • R2: Subjekt → Substantiv | Artikel Substantiv • R3: Pr¨ adikat → Verb • R4: Objekt → Substantiv | Artikel Substantiv • R5: Artikel → ”der” | ”die” | ”ein”

Folie 10/55

Beispiel: Syntaxregeln Deutsch • R1: Satz → Subjekt Pr¨ adikat Objekt ”.” • R2: Subjekt → Substantiv | Artikel Substantiv • R3: Pr¨ adikat → Verb • R4: Objekt → Substantiv | Artikel Substantiv • R5: Artikel → ”der” | ”die” | ”ein” • R6: Substantiv → ”Reisef¨ uhrer” | ”Sehensw¨urdigkeit” |

”Paul” | ”Auto”

Folie 10/55

Beispiel: Syntaxregeln Deutsch • R1: Satz → Subjekt Pr¨ adikat Objekt ”.” • R2: Subjekt → Substantiv | Artikel Substantiv • R3: Pr¨ adikat → Verb • R4: Objekt → Substantiv | Artikel Substantiv • R5: Artikel → ”der” | ”die” | ”ein” • R6: Substantiv → ”Reisef¨ uhrer” | ”Sehensw¨urdigkeit” |

”Paul” | ”Auto” • R7: Verb → ”zeigt” | ”f¨ ahrt”

Folie 10/55

Anwenden von Regel R1: Satz → Subjekt Pr¨adikat Objekt ”.”

Folie 11/55

Anwenden von Regel R2: Subjekt → Substantiv | Artikel Substantiv R3: Pr¨adikat → Verb R4: Objekt → Substantiv | Artikel Substantiv

Folie 12/55

Anwenden von Regel R5: Artikel → ”der” | ”die” | ”ein” R6: Substantiv → ”Reisef¨uhrer” | ”Sehensw¨urdigkeit” | ”Paul” | ”Auto” R7: Verb → ”zeigt” | ”f¨ahrt”

Folie 13/55

Folie 14/55

Definition: Terminal- Nichtterminalsymbol Ein Terminalsymbol ist ein Symbol, das einzeln nicht weiter durch eine Produktionsregel ersetzt werden kann. Ein Nichtterminalsymbol ist ein Symbol, das nicht in den endg¨ultigen W¨ortern vorkommt. Nichtterminalsymbole kommen nur in Zwischenschritten einer Ableitung vor und werden durch das Anwenden von Regeln nach und nach ersetzt, bis nur noch Terminalsymbole vorhanden sind.

Folie 15/55

Definition: Syntaxbaum Ein Syntaxbaum veranschaulicht die syntaktische Struktur eines Satzes. Die Bl¨atter des Syntaxbaums sind Terminalsymbole, die inneren Knoten Nichtterminalsymbole.

Folie 16/55

Definition: Wort Der Begriff Wort“ unterscheidet sich im Kontext der ” nat¨urlichen und der formalen Sprachen: nat¨urliche Sprache Zusammenh¨angende und korrekte Buchstabenketten (ohne Leerzeichen) mit eigenst¨andiger Bedeutung. “Hallo“, “Computer“, ...

Folie 17/55

formale Sprache Zeichenketten aus den Symbolen des Alphabets, die in dieser Sprache als korrekt definiert sind (z.B. syntaktisch korrektes Programm). “SELECT * FROM buch WHERE true“

1.2 Grammatiken formaler Sprachen Definition: formale Grammatik Eine formale Grammatik G besteht aus vier Elementen: • V : Vokabular ist eine endliche Menge an Symbolen. • Σ: Die Terminalsymbole sind eine Teilmenge von V (Σ ⊂ V ). • P: endliche Menge von Produktionsregeln. • S: Startsymbol ∈ V \ Σ ist das erste Nichtterminal, mit dem die Erzeugung einer g¨ultigen Zeichenkette begonnen wird.

Folie 18/55

Produktionsregeln in der EBNF Definition: EBNF Eine formale Sprache wird durch eine formale Grammatik G = (V , Σ, P, S) definiert. F¨ur die Darstellung der Produktionsregeln P gibt es die standartisierte EBNF (=erweiterte Backus-Naur-Form).

Folie 19/55

Beispiel: Grammatik einer E-Mail-Adresse G = (V , Σ, P, S) mit V = {′′ 0′′ ,′′ 1′′ , ...,′′ 9′′ } ∪ {′′ a′′ ,′′ b ′′ , ...,′′ z ′′ } ∪ {′′ @′′ ,′′ −′′ ,′′ ′′ ,′′ .′′ ,′′ !′′ } ∪ {E-Mail-Adresse, Benutzerkennung} ∪ {Dom¨ane, Einzelzeichen, Buchstabe} ∪ {Ziffer, Unterdom¨ane, Topleveldom¨ane} Σ = {′′ 0′′ ,′′ 1′′ , ...,′′ 9′′ } ∪ {′′ a′′ ,′′ b ′′ , ...,′′ z ′′ } ∪ {′′ @′′ ,′′ −′′ ,′′ ′′ ,′′ .′′ ,′′ !′′ } S = {′′ E-Mail-Adresse′′ } Folie 20/55

Definition: Startsymbol Ausgehend von einem Startsymbol S werden durch Produktionsregeln (PR) aus der Regelmenge P neue Zeichenfolgen abgeleitet. PR1

E-Mail-Adresse = Benutzerkennung ”@” Dom¨ane

Wiederholung Stehen Elemente innerhalb geschweifter Klammern, k¨onnen diese Elemente bei der Ableitung kein, ein oder beliebig oft wiederholt werden. Da das Einzelzeichen mindestens einmal vorkommen muss erhalten wir: PR2 Folie 21/55

Benutzerkennung = Einzelzeichen {Einzelzeichen}

Alternativen Alternativen bei der Ableitung werden durch das Trennzeichen ”|” angegeben. Einzelzeichen = Buchstabe | Ziffer |”-”|” ”|”.”|”!” Ziffer = ”0” | ”1” | ... | ”9” Buchstabe = ”a” | ”b” | ... | ”z”

PR3 PR4 PR5

| ... | ist dabei eine Aufz¨ ahlung um z.B. nicht alle 26 Buchstaben angeben zu m¨ussen.

PR6

Dom¨ane = Unterdom¨ane{”.” Unterdom¨ane}”.” Topleveldom¨ane

Folie 22/55

Option Elemente innerhalb eckiger Klammern k¨onnen abgeleitet werden, m¨ussen aber nicht. PR7

Topleveldom¨ane = Buchstabe Buchstabe [ Buchstabe ][ Buchstabe ]

Gruppieren Zusammengeh¨orige Elemente k¨onnen durch runde Klammern gruppiert werden: PR8

Unterdom¨ane =

(Buchstabe|Ziffer){Buchstabe|Ziffer | ”-”}(Buchstabe|Ziffer) Folie 23/55

Zusammenfassung der Produktionsregeln P = {PR1 , PR2 , PR3 , PR4 , PR5 , PR6 , PR7 , PR8 } mit • PR1 • PR2

E-Mail-Adresse = Benutzerkennung ”@” Dom¨ane

• PR3 • PR4

Einzelzeichen = Buchstabe | Ziffer |”-”|” ”|”.”|”!”

Benutzerkennung = Einzelzeichen {Einzelzeichen} Ziffer = ”0” | ”1” | ... | ”9”

• PR5 Buchstabe = ”a” | ”b” | ... | ”z” • PR6 Dom¨ane = Unterdom¨ane{”.” Unterdom¨ane}”.” Topleveldom¨ane • PR7 Topleveldom¨ane = Buchstabe Buchstabe [Buchstabe ][ Buchstabe ] • PR8 Unterdom¨ane =(Buchstabe|Ziffer) {Buchstabe|Ziffer | ”-”} (Buchstabe|Ziffer) Folie 24/55

¨ Uberblick Produktionsregeln in EBNF Wiederholung

{ELEMENT}

Alternativen

EL1 | EL2

Aufz¨ahlungen

EL1 | ... | ELX

Option

[ELEMENT]

Gruppierung

(ELEMENTE)

Folie 25/55

ELEMENT wird kein, ein oder beliebig oft wiederholt. Entweder EL1 oder EL2 wird abgeleitet. Aufz¨ahlung einer beliebigen Anzahl an Alternativen. ELEMENT wird kein oder einmal abgeleitet. ELEMENTE werden zusammengefasst.

Beispiel: Datum Gib eine Grammatik zu Darstellung eines Datums in der Form ”1. Januar 2013” an.

Folie 26/55

Beispiel: Datum Gib eine Grammatik zu Darstellung eines Datums in der Form ”1. Januar 2013” an.

Folie 26/55

Syntaxdiagramme Definition Syntaxdiagamm Ein Syntaxdiagramm wird in der Informatik benutzt, um die Syntax von Produktionsregeln P graphisch darzustellen. Die beiden Darstellungen sind gleich m¨achtig: “Jede formale Sprache in EBNF l¨asst sich in einem Syntaxdiagramm darstellen und umgekehrt.“

Folie 27/55

Beispiel Kalender

Folie 28/55

¨ Ubung: Syntaxdiagramme

Folie 29/55

¨ Ubung: Syntaxdiagramme

Folie 30/55

L¨osung

Folie 31/55

¨ Ubung: KFZ-Kennzeichen Skizziere das Syntaxdiagramm zu den hier angegebenen Grammatikregeln in EBNF: P = {PR1 , PR2 , PR3 , PR4 , PR5 , PR6 , PR7 ,} mit • PR1 KFZ-Kennzeichen = Zulassungsbezirk ”-” Buchstabenkombination ” ” Zahl • PR2 Zulassungsbezirk = Buchstabe [Buchstabe] [Buchstabe] • PR3 Buchstabenkombination = Buchstabe | Buchstabe Buchstabe • PR4 Zahl = ZifferOhneNull {Ziffer} • PR5 • PR6

Buchstabe = ”A” | ”B” | ... | ”Z”

• PR7

Ziffer = ”0” | ZifferOhneNull

Folie 32/55

ZifferOhneNull = ”1” | ”2” | ... | ”9”

L¨osung

Folie 33/55

1.3 Endliche Automaten Definition: endlicher Automat Ein endlicher Automat besteht aus endlich vielen Zust¨anden S ¨ und Uberg¨ angen δ zwischen diesen Zust¨anden. EA = (Σ, S, s0 , δ, F ).

• Σ Eingabealphabet • S Menge von Zust¨ anden • s0 Anfangszustand aus S • δ Zustands¨ ubergangsfunktion: δ : S × Σ → S • F Menge von Endzust¨ anden Folie 34/55

Erkennende Automaten Erkennender Automat zu KFZ-Kennzeichen

Folie 35/55

Erkennende Automaten Erkennender Automat zu KFZ-Kennzeichen

Folie 36/55

Noch ein Zustand fu¨r Automaten Definition: Fangzustand Unter einem Fangzustand versteht man einen Zustand in einem Automaten, der durch kein Eingabezeichen verlassen werden kann. Erreicht wird dieser Zustand durch das Lesen eines ung¨ultigen Zeichens.

Folie 37/55

Noch ein Zustand fu¨r Automaten

Folie 38/55

¨ Ubung: Vierertester Ein Vierertester pr¨uft, ob eine Dualzahl durch 4 teilbar ist, d.h. ob die beiden letzten Ziffern Nullen sind. Z.B. sind die Bin¨arzahlen 110100 und 100 durch 4 teilbar, 1101 und 0010011 jedoch nicht. • Bestimme ein Eingabealphabet f¨ ur die Bin¨arzahlen. • Skizziere einen endlichen erkennenden Automaten mit Start- und Endzustand. • Implementiere den Automaten in Java.

Folie 39/55

L¨osung: Vierertest

Folie 40/55

¨ Ubung: Paragraph G = (V , Σ, P, S) mit P ={ Gesetztextverweis = Paragraph [ Artikel ], Paragraph = ”§” ZahlOhne0 {Zahl}, Artikel = ”(” ZahlOhne0 [ Zahl ] ”)”, ZahlOhne0 = ”1” | ”2” | ... | ”9”, Zahl = ”0” | ZahlOhne0 }

Folie 41/55

Weitere Optimierungen Statische Variablen und Methoden In Programmiersprachen ist eine statische Variable (Schl¨usselwort ”static”) eine Variable, die w¨ahrend der gesamten Ausf¨uhrzeit des Programms, und nicht erst bei der Erzeugung eines Objekts der Klasse, genau einmal definiert ist. Statische Methoden d¨urfen nur auf statische Variablen zugreifen. Beispiel:

Folie 42/55

Weitere Optimierungen Entwurfsmuster Einzelst¨uck Das Entwurfsmuster Einzelst¨uck stellt sicher, dass von einer Klasse nur ein einziges Objekt existiert. Diese Instanz ist u¨blicherweise global verf¨ugbar. Umsetzung in Java: • Attribut mit Datentyp der Klasse, das die einzige Instanz enth¨alt. • private-Konstruktor, damit dieser nicht aufgerufen werden kann. • Eine statische Konstruktor-Ersatzmethode (z.B. public static [KLASSENNAME] objektGeben() ).

Folie 43/55

Entwurfsmuster Zustand Im Entwurfsmuster des Zustandes spielen drei Akteure eine Rolle. • Der Kontext definiert die clientseitige Schnittstelle und verwaltet die separaten Zustandsklassen. Außerdem tauscht er diese bei einem Zustands¨ubergang aus. • Der Zustand definiert eine einheitliche Schnittstelle aller Zustandsobjekte und implementiert gegebenenfalls ein Standardverhalten. • Der konkrete Zustand wiederum implementiert das Verhalten, das mit dem Zustand des Kontextobjektes verbunden ist.a a

Quelle: http://de.wikipedia.org/wiki/Zustand_%28Entwurfsmuster%29, 20. Oktober 2013

Folie 44/55

Entwurfsmuster Zustand

Folie 45/55

Folie 46/55

¨ Ubung: E-Mail

Folie 47/55

1.4 Grenzen endlicher Automaten Klammerproblem Jeder Taschenrechner beherrscht die Klammerung von Ausdr¨ucken. Dabei gibt es zu jeder ¨offnenden Klammer eine schließende Klammer. Beispiel: ((3 + 5) : 6) · (10 : (24 − 12) + 44) = ?

Folie 48/55

¨ Ubung: Vereinfachte Sprache Vereinfacht l¨asst sich das Problem mit der Sprache L = {ab, aabb, aaabbb, ...} = {an b n |n > 0} darstellen. Diese Sprache kann als Teil der Klammersprache gesehen werden. Plane einen Zustandsautomaten, der diese Problem l¨osen kann.

Folie 49/55

Problem Ein endlicher Automat kann problemlos erweitert werden, es m¨ussen nur jeweils zwei weitere neue Zust¨ande einf¨uhrt werden. Im allgemeinen Fall m¨usste der Automat aber unendlich viele Zust¨ande besitzen. Dies widerspricht aber der Definition eines endlichen Automaten (endlich viele Zust¨ande). Um die Sprache zu erkennen, ist es notwendig, dass sich der Automat irgendwie die Anzahl der n-mal gelesenen Buchstaben merkt.

Folie 50/55

L¨osung: Kellerautomat fu¨r kontextfreie Grammatiken

Folie 51/55

L¨osung: Kellerautomat fu¨r kontextfreie Grammatiken

1 1 Folie 52/55

Weitere Informationen unter http://de.wikipedia.org/wiki/Kellerautomat

L¨osung: Kellerautomat fu¨r kontextfreie Grammatiken

Folie 53/55

Chomsky Hierarchie

Chomsky-Typ

Grammatikart Sprache

Typ 0

unbeschr¨ankt

Typ 1

kontextsensitiv

Typ 2

kontextfrei

Typ 3

rechtslinear

Folie 54/55

aufz¨ahlbare Sprachen kontextsensitive Sprachen kontextfreie Sprachen regul¨are Sprachen

akzeptierende Maschine Turingmaschine linear beschr¨ankte Turingmaschine Kellerautomat endlicher Automat

Links zur Turingmaschine http://de.wikipedia.org/wiki/Turing_Maschine http://www.youtube.com/watch?v=MzMz-bVwhbE

Folie 55/55

Suggest Documents