58
Formale Sprachen M. Jakob Gymnasium Pegnitz 13. Oktober 2019

Formale Sprachen · 4 ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Formale Sprachen

M. Jakob

Gymnasium Pegnitz

13. Oktober 2019

Page 2: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Inhaltsverzeichnis

1 Allgemeine Einführung

2 Aufbau formaler Sprachen

3 Notationsformen formaler SprachenBackus-Naur-FormenSyntaxdiagramme

4 Erkennen formaler Sprachen

5 Implementierung formaler Sprachen

Page 3: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Natürliche und künstliche Sprachen

natürliche Sprachen (Deutsch, Englisch, Latein, . . . )meist historisch entwickelt, äußerst komplexkünstliche Sprachenfür spezielle Fachgebiete konstruiert, möglichst systematisch

Autokennzeichen

chemische Reaktionsgleichungen23592 U + 1

0n −→ 8936Kr + 144

56 Ba + 3 10n

mathematische Terme

3x2− 7x + 3

A sin(ωt + ϕ)

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 3 / 41

Page 4: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Bestandteile einer Sprache

Jede künstliche und natürliche Sprache enthält . . .

ein Alphabet, aus dem die Wörter und Sätze der Sprachezusammengestellt werden.eine Syntax, die angibt, welche Wörter, Ausdrücke und Sätze zurSprache gehören.eine Semantik, die festlegt, was die einzelnen Ausdrückebedeuten.

Die Grammatik stellt in diesem Zusammenhang ein Regelwerk dar,wie erreicht wird, dass ein Ausdruck syntaktisch korrekt ist.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 4 / 41

Page 5: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Bestandteile einer Sprache

Jede künstliche und natürliche Sprache enthält . . .ein Alphabet, aus dem die Wörter und Sätze der Sprachezusammengestellt werden.eine Syntax, die angibt, welche Wörter, Ausdrücke und Sätze zurSprache gehören.eine Semantik, die festlegt, was die einzelnen Ausdrückebedeuten.

Die Grammatik stellt in diesem Zusammenhang ein Regelwerk dar,wie erreicht wird, dass ein Ausdruck syntaktisch korrekt ist.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 4 / 41

Page 6: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Bestandteile einer Sprache

Jede künstliche und natürliche Sprache enthält . . .ein Alphabet, aus dem die Wörter und Sätze der Sprachezusammengestellt werden.eine Syntax, die angibt, welche Wörter, Ausdrücke und Sätze zurSprache gehören.eine Semantik, die festlegt, was die einzelnen Ausdrückebedeuten.

Die Grammatik stellt in diesem Zusammenhang ein Regelwerk dar,wie erreicht wird, dass ein Ausdruck syntaktisch korrekt ist.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 4 / 41

Page 7: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Syntaxbaum (Ableitungsbaum) einer Grammatik derdeutschen Sprache

Satz

PrädikatSubjekt Objekt .

Artikel Substantiv Verb Artikel Substantiv .

Der Schüler mag die Schule .

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 5 / 41

Page 8: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Syntaxbaum (Ableitungsbaum) einer Grammatik derdeutschen Sprache

Satz

PrädikatSubjekt Objekt

.

Artikel Substantiv Verb Artikel Substantiv .

Der Schüler mag die Schule .

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 5 / 41

Page 9: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Syntaxbaum (Ableitungsbaum) einer Grammatik derdeutschen Sprache

Satz

PrädikatSubjekt Objekt .

Artikel Substantiv Verb Artikel Substantiv .

Der Schüler mag die Schule .

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 5 / 41

Page 10: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Syntaxbaum (Ableitungsbaum) einer Grammatik derdeutschen Sprache

Satz

PrädikatSubjekt Objekt .

Artikel Substantiv

Verb Artikel Substantiv .

Der Schüler mag die Schule .

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 5 / 41

Page 11: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Syntaxbaum (Ableitungsbaum) einer Grammatik derdeutschen Sprache

Satz

PrädikatSubjekt Objekt .

Artikel Substantiv Verb

Artikel Substantiv .

Der Schüler mag die Schule .

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 5 / 41

Page 12: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Syntaxbaum (Ableitungsbaum) einer Grammatik derdeutschen Sprache

Satz

PrädikatSubjekt Objekt .

Artikel Substantiv Verb Artikel Substantiv .

Der Schüler mag die Schule .

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 5 / 41

Page 13: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Syntaxbaum (Ableitungsbaum) einer Grammatik derdeutschen Sprache

Satz

PrädikatSubjekt Objekt .

Artikel Substantiv Verb Artikel Substantiv .

Der Schüler mag die Schule .

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 5 / 41

Page 14: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Syntaxbaum in Regeln gefasst

Regeln der Grammatik

R1 Satz → Subjekt Prädikat Objekt ".“R2 Subjekt → Substantiv | Artikel SubstantivR3 Prädikat → VerbR4 Objekt → Substantiv | Artikel SubstantivR5 Artikel → “der“ | “den“ | “einen“R6 Substantiv→ “Volleyballer“ | “Ball“ | “Schüler“ | “Pass“ |

“Saxofon“R7 Verb → “spielt“ | “mag“

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 6 / 41

Page 15: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Zusammenfassung

Regeln, die auf Platzhalter (bestehend aus Nichtterminalsymbolen)enden

R1 Satz → Subjekt Prädikat Objekt ".“R2 Subjekt → Substantiv | Artikel SubstantivR3 Prädikat→ VerbR4 Objekt → Substantiv | Artikel Substantiv

Regeln, die auf Wörtern (Terminalsymbolen) enden

R5 Artikel → “der“ | “den“ | “einen“R6 Substantiv→ “Volleyballer“ | “Ball“ | “Schüler“ | “Pass“ |

“Saxofon“R7 Verb → “spielt“ | “mag“

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 7 / 41

Page 16: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Unterschied zwischen Syntax und Semantik

Mit dieser Grammatik lassen sich folgende syntaktisch richtigen Sätzebilden:

der Schüler mag den Schule.der Volleyballer spielt den Schüler.der Schüler spielt Saxofon.

Dabei ist nur der letzte Satz semantisch korrekt.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 8 / 41

Page 17: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Unterschied zwischen Syntax und Semantik

Mit dieser Grammatik lassen sich folgende syntaktisch richtigen Sätzebilden:

der Schüler mag den Schule.der Volleyballer spielt den Schüler.der Schüler spielt Saxofon.

Dabei ist nur der letzte Satz semantisch korrekt.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 8 / 41

Page 18: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Allgemeine Einführung

Übung

Ü 1.1: Buch S.14 / 5Ü 1.2: Buch S.14 / 6Ü 1.3: Buch S.14 / 7

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 9 / 41

Page 19: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Aufbau formaler Sprachen

Bestandteile einer Grammatik

Definition (Grammatik)

Eine Grammatik (V ,Σ,P,S) besteht aus . . .Einer Menge V von Nichtterminalsymbolen (Variablen),Einer Menge Σ von Terminalsymbolen (Alphabet).Einer Menge P von Produktionen (auch Regeln genannt).Einem Startsymbol S aus der Menge der Nichtterminalsymbole.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 10 / 41

Page 20: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Aufbau formaler Sprachen

Aufbau formaler Sprachen — Bemerkungen

Σ und V dürfen kein gemeinsames Element besitzen (Σ ∩ V = {}).Die Grammatik legt eine formale Sprache fest, deren Worte nuraus Terminalsymbolen aus Σ bestehen und die ausgehend vomStartsymbol S mithilfe einer endlichen Anzahl von Anwendungenvon Regeln aus P abgeleitet werden können.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 11 / 41

Page 21: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Aufbau formaler Sprachen

Bespiel E-Mail-Adresse: [email protected]

R1 E-Mail-Adresse = Benutzerkennung " @"Domäne

R2 Benutzerkennung = Einzelzeichen {Einzelzeichen}R3 Domäne = Unterdomäne {" ."Unterdomäne} " ."TLDR4 TLD = Buchstabe Buchstabe [Buchstabe] [Buchstabe]R5 Unterdomäne = (Buchstabe | Ziffer) {Buchstabe | Ziffer | " -"}

(Buchstabe | Ziffer)R6 Einzelzeichen = Buchstabe | Ziffer | " -"| " _"| " ."| " !"R7 Ziffer = "0 | "1"| ... | "9"R8 Buchstabe = " a"| "b"| "c"| ... | " z"

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 12 / 41

Page 22: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Aufbau formaler Sprachen

Bespiel E-Mail-Adresse: [email protected]

R1 E-Mail-Adresse = Benutzerkennung " @"DomäneR2 Benutzerkennung = Einzelzeichen {Einzelzeichen}

R3 Domäne = Unterdomäne {" ."Unterdomäne} " ."TLDR4 TLD = Buchstabe Buchstabe [Buchstabe] [Buchstabe]R5 Unterdomäne = (Buchstabe | Ziffer) {Buchstabe | Ziffer | " -"}

(Buchstabe | Ziffer)R6 Einzelzeichen = Buchstabe | Ziffer | " -"| " _"| " ."| " !"R7 Ziffer = "0 | "1"| ... | "9"R8 Buchstabe = " a"| "b"| "c"| ... | " z"

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 12 / 41

Page 23: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Aufbau formaler Sprachen

Bespiel E-Mail-Adresse: [email protected]

R1 E-Mail-Adresse = Benutzerkennung " @"DomäneR2 Benutzerkennung = Einzelzeichen {Einzelzeichen}R3 Domäne = Unterdomäne {" ."Unterdomäne} " ."TLD

R4 TLD = Buchstabe Buchstabe [Buchstabe] [Buchstabe]R5 Unterdomäne = (Buchstabe | Ziffer) {Buchstabe | Ziffer | " -"}

(Buchstabe | Ziffer)R6 Einzelzeichen = Buchstabe | Ziffer | " -"| " _"| " ."| " !"R7 Ziffer = "0 | "1"| ... | "9"R8 Buchstabe = " a"| "b"| "c"| ... | " z"

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 12 / 41

Page 24: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Aufbau formaler Sprachen

Bespiel E-Mail-Adresse: [email protected]

R1 E-Mail-Adresse = Benutzerkennung " @"DomäneR2 Benutzerkennung = Einzelzeichen {Einzelzeichen}R3 Domäne = Unterdomäne {" ."Unterdomäne} " ."TLDR4 TLD = Buchstabe Buchstabe [Buchstabe] [Buchstabe]

R5 Unterdomäne = (Buchstabe | Ziffer) {Buchstabe | Ziffer | " -"}(Buchstabe | Ziffer)

R6 Einzelzeichen = Buchstabe | Ziffer | " -"| " _"| " ."| " !"R7 Ziffer = "0 | "1"| ... | "9"R8 Buchstabe = " a"| "b"| "c"| ... | " z"

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 12 / 41

Page 25: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Aufbau formaler Sprachen

Bespiel E-Mail-Adresse: [email protected]

R1 E-Mail-Adresse = Benutzerkennung " @"DomäneR2 Benutzerkennung = Einzelzeichen {Einzelzeichen}R3 Domäne = Unterdomäne {" ."Unterdomäne} " ."TLDR4 TLD = Buchstabe Buchstabe [Buchstabe] [Buchstabe]R5 Unterdomäne = (Buchstabe | Ziffer) {Buchstabe | Ziffer | " -"}

(Buchstabe | Ziffer)

R6 Einzelzeichen = Buchstabe | Ziffer | " -"| " _"| " ."| " !"R7 Ziffer = "0 | "1"| ... | "9"R8 Buchstabe = " a"| "b"| "c"| ... | " z"

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 12 / 41

Page 26: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Aufbau formaler Sprachen

Bespiel E-Mail-Adresse: [email protected]

R1 E-Mail-Adresse = Benutzerkennung " @"DomäneR2 Benutzerkennung = Einzelzeichen {Einzelzeichen}R3 Domäne = Unterdomäne {" ."Unterdomäne} " ."TLDR4 TLD = Buchstabe Buchstabe [Buchstabe] [Buchstabe]R5 Unterdomäne = (Buchstabe | Ziffer) {Buchstabe | Ziffer | " -"}

(Buchstabe | Ziffer)R6 Einzelzeichen = Buchstabe | Ziffer | " -"| " _"| " ."| " !"

R7 Ziffer = "0 | "1"| ... | "9"R8 Buchstabe = " a"| "b"| "c"| ... | " z"

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 12 / 41

Page 27: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Aufbau formaler Sprachen

Bespiel E-Mail-Adresse: [email protected]

R1 E-Mail-Adresse = Benutzerkennung " @"DomäneR2 Benutzerkennung = Einzelzeichen {Einzelzeichen}R3 Domäne = Unterdomäne {" ."Unterdomäne} " ."TLDR4 TLD = Buchstabe Buchstabe [Buchstabe] [Buchstabe]R5 Unterdomäne = (Buchstabe | Ziffer) {Buchstabe | Ziffer | " -"}

(Buchstabe | Ziffer)R6 Einzelzeichen = Buchstabe | Ziffer | " -"| " _"| " ."| " !"R7 Ziffer = "0 | "1"| ... | "9"

R8 Buchstabe = " a"| "b"| "c"| ... | " z"

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 12 / 41

Page 28: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Aufbau formaler Sprachen

Bespiel E-Mail-Adresse: [email protected]

R1 E-Mail-Adresse = Benutzerkennung " @"DomäneR2 Benutzerkennung = Einzelzeichen {Einzelzeichen}R3 Domäne = Unterdomäne {" ."Unterdomäne} " ."TLDR4 TLD = Buchstabe Buchstabe [Buchstabe] [Buchstabe]R5 Unterdomäne = (Buchstabe | Ziffer) {Buchstabe | Ziffer | " -"}

(Buchstabe | Ziffer)R6 Einzelzeichen = Buchstabe | Ziffer | " -"| " _"| " ."| " !"R7 Ziffer = "0 | "1"| ... | "9"R8 Buchstabe = " a"| "b"| "c"| ... | " z"

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 12 / 41

Page 29: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Aufbau formaler Sprachen

Ableitungsbaum für eine E-Mail-Adresse

E-Mail-Adresse

[email protected]

R2

Domäne

R3

EZ

R6

EZ

R6

.Unterdom.

R5

TLD

R4

BS

R8 überall

BSBSBS BSBS BS

edew bm b

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 13 / 41

Page 30: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

In diesem Abschnitt

3 Notationsformen formaler SprachenBackus-Naur-FormenSyntaxdiagramme

Page 31: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Notationsformen Backus-Naur-Formen

Die Backus-Naur-Form (BNF)

Wie Syntaxregeln aufgeschrieben werden, legt z.B. dieBackus-Naur-Form fest.Beispiel:

1 <Ziffer> ::= 0 | <ZifferNNull >2 <ZweistZahl > ::= <ZifferNNull > <Ziffer>3 <Zehn bis Neunzehn > ::= 1 <Ziffer>4 <Zweiundvierzig > ::= 42

Die Backus-Naur-Formhat zwei große Nachteile: Sie

ist nicht standardisiert (viele unterschiedliche Dialekte).besitzt keine Symbole für optionale Zeichen und Wiederholungen.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 15 / 41

Page 32: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Notationsformen Backus-Naur-Formen

Erweiterte Backus-Naur-Form (EBNF)

EBNFUnsere bisherigen Beispiele verwendet einigeSchreibvereinfachungen, die in der Erweiterten Backus-Naur-Form(EBNF) standardisiert sind.

Das Zeichen | steht für eine Alternative (eines davon).Die Klammern [] stehen für eine Option (kann, muss aber nicht).Die Klammern {} stehen für eine Wiederholung (beliebig oft - auchkeinmal).Die Klammern () stehen für logische Gruppierungen.Die Ableitungspfeile werden durch =-Zeichen ersetzt.Am Ende einer Anweisung stets ein „Ende“-Zeichen (z.B. ;)

Hinweis ∗ als Wiederholungszeichen

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 16 / 41

Page 33: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

In diesem Abschnitt

3 Notationsformen formaler SprachenBackus-Naur-FormenSyntaxdiagramme

Page 34: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Notationsformen Syntaxdiagramme

Syntaxdiagramme

Syntaxdiagramme

stellen die Regeln einer Grammatik grafisch dar. Für jede Regel gibt esein eigenes Syntaxdiagramm.Terminale werden durch Kreise, Nichtterminale durch Rechteckerepräsentiert. Verfolgt man einen Pfad vom Start- zum Endpfeil, soerhält man die entsprechenden Regel der Grammatik.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 18 / 41

Page 35: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Notationsformen Syntaxdiagramme

Beispiele

EBNFE-Mail-Adresse = Benutzerkennung ’@’ Domäne

SyntaxdiagrammE-Mail-Adresse:

Benutzerkennung @ Domäne

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 19 / 41

Page 36: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Notationsformen Syntaxdiagramme

Beispiele

EBNFBenutzerkennung = Einzelzeichen {Einzelzeichen}

SyntaxdiagrammBenutzerkennung:

Einzelzeichen

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 20 / 41

Page 37: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Notationsformen Syntaxdiagramme

Beispiele

EBNFDomäne = Unterdomäne {’.’ Unterdomäne} ’.’ TLD

SyntaxdiagrammDomäne:

Unterdomäne . TDL

Unterdomäne .

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 21 / 41

Page 38: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Notationsformen Syntaxdiagramme

Beispiele

EBNFTLD = Buchstabe Buchstabe [Buchstabe] [Buchstabe]

SyntaxdiagrammTDL:

Buch. Buch.

Buch. Buch.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 22 / 41

Page 39: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Notationsformen Syntaxdiagramme

Beispiele

EBNFEinzelzeichen = Buchstabe | Ziffer | ’-’ | ’_’ | ’.’ | ’!’

SyntaxdiagrammEinzelzeichen:

Buchstabe

Ziffer

-

_

.

!

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 23 / 41

Page 40: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Notationsformen Syntaxdiagramme

Übung

Überblick Syntaxdiagramme S. 24ffÜ 3.1: S. 28/1 (gem.)Ü 3.2: S. 28/2Ü 3.3: S. 29/5

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 24 / 41

Page 41: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Notationsformen Syntaxdiagramme

Übung

Ü 3.4: S. 29/6Ü 3.5: S. 29/7aÜ 3.6: S. 31/10Ü 3.7: Abi 2012, III,1a und smilies mit EBNF-Visualizer oderOnline-RRGåEBNF-VisualizeråOnline-RRG

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 25 / 41

Page 42: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Erkennung

Beispiel: Lachautomat

SyntaxdiagrammLach:

h a !

gesucht

Algorithmus, der erkennt, ob ein Wort zu einer Grammatik gehört, odernicht.

an Tafel in DFA konvertieren

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 26 / 41

Page 43: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Erkennung

Beispiel: Der Lachautomat

Zustandsdiagramm

Sstart H HA

Fehler

ARZh

ah !

Jeder Automat muss einen Startzustand haben (hier S).Wenn ein bestimmtes Zeichen eingelesen wird, springt derAutomat evtl. in einen anderen Zustand.Ist ein Ausdruck syntaktisch korrekt, wird er akzeptiert, d.h. derAutomat springt in den Endzustand (hier ARZ), wenn nicht , ineinen Fehlerzustand, aus dem kein Übergang mehr herausführendarf.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 27 / 41

Page 44: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Erkennung

Übung

Ü 4.1: Lachautomat mit AutoEdit von AtoCCÜ 4.2: S. 41/2Ü 4.3: S. 41/5åÜ 4.4: Exorciser

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 28 / 41

Page 45: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Erkennung

Die Übergangsfunktion — Matrixdarstellung

Die Übergangsfunktion lässt sich als Matrix darstellen, in der für jedenZustand angegeben wird, durch welche eingelesenen Zeichen, welcheZustandsübergänge ausgelöst werden.

h a ! sonstS H Fehler Fehler FehlerH Fehler HA Fehler FehlerHA H Fehler ARZ FehlerARZ Fehler Fehler Fehler FehlerFehler Fehler Fehler Fehler Fehler

Sstart H HA

Fehler ARZ

hah

!

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 29 / 41

Page 46: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Erkennung

Die Übergangsfunktion — Darstellung mittelsFunktionsaufruf

Die Übergangsfunktion δ lässt mittels Funktionsaufrufe darstellen.Eingabeparameter sind Tupel von Zuständen und Zeichen,Ausgabeparameter die dazugehörigen Zielzustände.

δ(S; h) = Hδ(H; a) = HA

δ(HA ; h) = Hδ(HA ; !) = ARZ

δ(sonst; sonst) = Fehler

Sstart H HA

Fehler ARZ

hah

!

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 30 / 41

Page 47: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Erkennung

Definition Endlicher Automat

DefinitionEin erkennender endlicher Automat besteht aus folgenden Teilen:

Eine Menge der Zustände: Z = {S ,H,HA ,ARZ ,Fehler}Eine Menge der Eingabezeichen (Alphabet): T = {h,a, !}Eine Übergangsfunktion: δ : Z × T −→ ZDas bedeutet: Wenn man einen Zustand mit einemEingabezeichen kombiniert, ergibt sich wieder ein (neuer)Zustand.Ein Startsymbol: S ∈ ZEine Menge von Endzuständen: F ⊂ Z , F = {ARZ}

Ein Wort gilt als erkannt, wenn sich der Automat nach Einlesen allerEingabezeichen in einem Endzustand befindet.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 31 / 41

Page 48: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Erkennung

Grenzen endlicher Automaten

Es lässt sich zeigen:

Zu jedem endlichen Automaten existiert eine wie oben definierteGrammatik aber nicht umgekehrt.

Beispiel:Multiklammern:

S = (S) | a

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 32 / 41

Page 49: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Implementierung

Beispiel: Lachautomat-Implementation

Sstart H HA

Fehler

ARZh

ah !

Idee:

Es wird eine Variable Zustand definiert.Das zu testende Wort wird buchstabenweise ausgewertet und dieZustandsvariable entsprechend geändert.Befindet sich die Zustandsvariable am am Ende im Endzustandgehört das eingegeben Wort zur Grammatik.

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 33 / 41

Page 50: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Implementierung

Lachautomat — Variablendeklaration

1 private String eingabe;2 private int zustand;

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 34 / 41

Page 51: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Implementierung

XX

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 35 / 41

Page 52: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Implementierung

Lachautomat — Zustandsdeklaration

1 // Codierung der Zustände als Konstanten2 private final int START = 0;3 private final int H = 1;4 private final int HA = 2;5 private final int ARZ = 3;6 private final int FEHLER = 99;7

8 // Menge der Endzustände9 private int F[] = { ARZ };

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 35 / 41

Page 53: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Implementierung

Lachautomat — Konstruktor und Parser starten

1 public Lachautomat() { }2

3 public void setEingabe(String e)4 {5 eingabe = e;6 parsen();7 }

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 36 / 41

Page 54: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Implementierung

Lachautomat — parsen (lokale Variablen)

1 private void parsen(){2 char z;3 zustand = START;4 System.out.print(’\u000c’);5 anzeigen(’ ’);

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 37 / 41

Page 55: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Implementierung

Lachautomat — parsen (Kern und Ausgabe)

6 for (int i = 0; i < eingabe.length(); i =i + 1){

7 z = eingabe.charAt(i);8 switch (z){9 case ’h’: { h(); break; }

10 case ’a’: { a(); break; }11 case ’!’: { arz(); break; }12 default: { sonst(); break; }13 }14 anzeigen(z);15 }16 ergebnisAusgeben(isEndzustand());17 }

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 38 / 41

Page 56: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Implementierung

Lachautomat — parsen (Zustandsübergänge)

1 private void h()2 {3 switch (zustand)4 {5 case START: { zustand = H; break

; }6 case HA: { zustand = H; break

; }7 default: { zustand = FEHLER; break

; }8 }9 }

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 39 / 41

Page 57: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole

Implementierung

Übung

Ü 5.1: Fehlende Methoden implementierenÜ 5.2: Funktion der Methode isEndzustand() erklärenÜ 5.3: Implementation Lachautomat möglichst weit vereinfachenÜ 5.4: Implementation Lachautomat zuerst nach Zuständen switchenÜ 5.5: parser für binäre Rechenoperationen erstellenÜ 5.6: S 44/8Ü 5.7: S 44/10

M. Jakob (Gymnasium Pegnitz) Formale Sprachen 13. Oktober 2019 40 / 41

Page 58: Formale Sprachen · 4  ::= 42 Die Backus-Naur-Form hat zwei große Nachteile: Sie ist nicht standardisiert (viele unterschiedliche Dialekte). besitzt keine Symbole