• Keine Ergebnisse gefunden

§ FormaleralsUmgangssprache § Kompakter § 1. Zeile: Name der EBNF Regel, mitder das Symbol übereinstimmensoll § LetzteZeile: Symbol Tabellen

N/A
N/A
Protected

Academic year: 2022

Aktie "§ FormaleralsUmgangssprache § Kompakter § 1. Zeile: Name der EBNF Regel, mitder das Symbol übereinstimmensoll § LetzteZeile: Symbol Tabellen"

Copied!
73
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Tabellen

§ Formaler als Umgangssprache

§ Kompakter

§ 1. Zeile: Name der EBNF Regel, mit der das Symbol übereinstimmen soll

§ Letzte Zeile: Symbol

65

(2)

Tabellen

§ Jede Zeile wird aus der Vorgängerzeile durch eine dieser Regeln abgeleitet:

1. Ersetze einen Namen (LHS) durch die entsprechende Definition (RHS) 2. Wahl einer Alternative

3. Entscheidung ob ein optionales Element dabei ist oder nicht 4. Bestimmung der Zahl der Wiederholungen

§ Manchmal werden 1&2 in einem Schritt gemacht

(3)

68

(4)

Ableitungsbäume

§ Graphische Darstellung eines Beweises durch eine Tabelle

§ Oben: Name der EBNF Regel, mit der das Symbol übereinstimmen soll

§ Unten: Symbol

§ Kanten zeigen welche Regeln es uns erlauben von einer Zeile zur nächsten (in der Tabelle) zu gehen

(5)

73

(6)

Schnellübung

§ Welche dieser Symbole sind legal gemäss der integer Beschreibung (i1)?

1. +28 2. +0 3. - 4. IX

5. 333-111 6. -354

7. two 8. a2

9. 0

10. $100 11. 007 12. 824

§ Zeichnen Sie einen Ableitungsbau für 28

§ Vergleichen Sie Ihre Lösung mit der Ihrer/Ihres

(7)

78

(8)

Ableitungsbaum für 28 integer

[ + | - ] digit { digit }

2 digit

8

Eine Option die nicht genommen wurde

Ableitungsbaum Versuch für A15 integer

[ + | - ] digit { digit }

Es geht nicht weiter.

(9)

Sonderzeichen

§ Diese acht Zeichen (Buchstaben ) haben eine besondere Bedeutung in EBNF Beschreibungen: {, }, [, ], |, (, ),

§ Auch < und > wenn wir Namen nicht kursiv schreiben

§ Was machen wir wenn wir ein “{“ in einem Symbol wollen?

§ z.B. um eine Menge zu beschreiben

§ Antwort: Zeichen in Rahmen {

§ Alternativen (in Textbüchern): In Anführungszeichen, z.B. “(“

§ Dann ist “ auch ein Sonderzeichen

§ Um ein “ in einem Symbol zu bekommen: “”

82

(10)

Äquivalente EBNF Beschreibungen

§ Äquivalent: gleichwertig (sind immer gleich – in einem Kontext)

äqui- valent

Äquivalent bzgl. Kaufkraft, nicht aber vor einem Automaten der

(11)

Äquivalente EBNF Beschreibungen

§ Jede EBNF Beschreibung definiert eine Sprache: Menge der legalen Symbole

§ Äquivalente EBNF Beschreibungen erkennen die selben legalen und illegalen Symbole

§ Jedes mögliche Symbol wird von beiden Beschreibungen als legal (oder illegal) erkannt

§ Die Sprachen der EBNF Beschreibungen sind identisch

86

(12)

Äquivalenz von EBNF Beschreibungen

§ Zwei EBNF Beschreibungen B1, B2 definieren die selbe Sprache:

§ Symbol legal für B1: dann auch legal für B2

§ Symbol illegal für B1: dann auch illegal für B2

§ Symbol legal für B2: dann auch legal für B1

§ Symbol illegal für B2: dann auch illegal für B1

§ B1 und B2 äquivalent

(13)

EBNF Beispiel

88

(14)

Weitere EBNF Beschreibung für integer (i4)

(15)

Andere Beschreibung für integer (i4')

92

(16)

Noch eine andere Beschreibung

§ Äquivalent zu früherer Beschreibung?

§ Symbol legal gemäss 1. Beschreibung: legal gemäss dieser Beschreibung

§ Gilt auch die Umkehrung?

(17)

Noch eine andere Beschreibung

§ Symbol legal gemäss 1. Beschreibung: legal gemäss dieser Beschreibung

§ Gilt auch die Umkehrung?

§ Nein: + ist jetzt legal

§ Nein: “leeres Symbol” jetzt eine legale integer

95

(18)
(19)

100

(20)

Frage

§ Beschreibung comma_integer lässt Symbole zu, die wir nicht akzeptieren wollen.

§ Können wir (ci) so ändern, dass Hochkommas richtig (zur Gruppierung in Tausenderblöcke) gesetzt werden

§ Jede Dreier-Gruppe von Ziffern ist durch ein Hochkomma von den links davor geschriebenen Ziffern getrennt.

§ Wenn eine Dreier-Gruppe am Anfang steht, dann steht dort kein Hochkomma (denn es gibt ja keine Ziffern links davor)

(21)

Zurück zu integer (i1)

§ Welche dieser EBNF Beschreibungen ist äquivalent zur (früheren) Beschreibung (i1)?

103

A (i5) B (i6)

(22)

Zurück zu integer

§ Welche dieser EBNF Beschreibungen ist äquivalent zur (früheren) Beschreibung (i1)?

§ Beide (A und B)

A (i5) B (i6)

(23)

Syntax und Semantik

§ Syntax: Form

§ Semantik (“semantics”): Bedeutung (“meaning”)

§ Syntax legt nur die Form fest.

105

(24)

Syntax und Semantik

§ Syntax: Form

§ Semantik (“semantics”): Bedeutung (“meaning”)

§ Syntax legt nur die Form fest.

Alle lesenden Schiffe riechen gelb.

(25)

Syntax und Semantik

§ EBNF beschreibt nur die Syntax

§ Für Programmiersprachen, zwei wichtige Semantik Fragen:

1. Können unterschiedliche Symbole die selbe Bedeutung haben?

2. Kann ein Symbol verschiedene Bedeutungen haben?

107

(26)

Illustration

§ Symbole die wir untersuchen: Namen

§ Herr Wirth

§ Professor Wirth

§ Niklaus Wirth können sich auf selbe Person beziehen

§ Symbol das wir untersuchen: Ausdruck “nächste Vorlesung”

§ Die “nächste Vorlesung” fällt aus

§ 252-0027, heute : keine Vorlesung am Dienstag

§ 252-0025, heute: keine Vorlesung am Montag

(27)

Semantik von integer

§ Bedeutung einer Zahl: ihr Wert

§ 1, +1

§ -0, +0, 0

§ Sollen 0012 und 12 die selbe Bedeutung haben?

§ Mathematik: ja

§ PIN code: nein

109

(28)

EBNF Beschreibung integer_set

§ Mengen von Zahlen

§ { Aufzählung von Zahlen }

§ Zwischen { und } keine oder Reihe von Zahlen, durch Komma getrennt

§ { 1 } {3, 2} {3, 2, 3} {}

§ In EBNF Regeln, müssen unterscheiden zwischen { und {

(29)

113

(30)

EBNF Beschreibung integer_set

§ Mengen von Zahlen

§ { Aufzählung von Zahlen }

§ Zwischen { und } keine oder Reihe von Zahlen, durch Komma getrennt

§ { 1 } {3, 2} {3, 2, 3} {}

EBNF Beschreibung

integer_list integer [ , integer ]

(31)

Diskussion

§ integer_list Regel – ähnlich vielen Regeln für Java

§ Beispiele

§ { }

§ { 1 }

§ { 2, -5, 18 }

§ Kann durch Tabelle (oder Ableitungsbaum) gezeigt werden

117

(32)

Diskussion

{ 2, -5, 18 }

§ Lemma: 2 ist eine integer

§ Lemma: -5 ist eine integer

§ Lemma: 18 ist eine integer

(33)

Tabelle

Regel

integer_set Anfang jeder Tabelle

{ [ integer_list ] } Ersetzen von integer_set durch RHS (1)

{ integer_list } Option eingeschlossen (3)

{ integer { , integer } } Ersetzen von integer_list durch RHS (1) { integer , integer , integer } 2 Wiederholungen (4)

{ 2 , integer , integer } Lemma { 2 , -5 , integer }

{ 2 , -5 , 18 }

119

(34)
(35)

Bedeutung von Mengen

§ Wann sind zwei Mengen äquivalent?

§ Mehrfach Nennungen sind nicht wichtig

§ {1, 2, 3, 3, 2, 2, 2 } äquivalent zu {1, 2, 3}

§ Reihenfolge nicht wichtig

§ { 1, 2, 3 } äquivalent zu { 3, 2, 1 }

§ Kanonische (in Übereinstimmung mit Regel) Darstellung: geordnet, von kleinster [links] nach grösster Zahl [rechts]

§ Die kanonische Darstellung kann nicht durch EBNF Regeln erzwungen werden

124

(36)

EBNF Beschreibungen

§ Erstellen Sie eine EBNF Beschreibung sodass Zahlen nicht mit einer Null anfangen (also 007 ist illegal, 7 ist legal).

(37)

zero 0

nonzero 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 digit zero | nonzero

integer [ + | - ] nonzero { digit }

126

(38)

zero 0

nonzero 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 digit zero | nonzero

integer [ + | - ] nonzero { digit }

… aber jetzt ist 0 kein gültiges Symbol

Wie können wir die Beschreibung verbessern?

(39)

EBNF Beschreibungen

§ Erstellen Sie eine EBNF Beschreibung für die Züge der SBB [wie wir sie vielleicht wollen]

§ Züge bestehen aus Lokomotiven (L), Speisewagen (S), Fahrrad&Gepäckwagen (F), Grossraumwagen (G),

Steuerwagen(Z)

§ Folgende Bedingungen müssen erfüllt sein:

130

(40)

Steuerwagen

(41)

1. Eine oder mehrere Lokomotiven führen den Zug an

§ Anfang des Zuges ist links

2. Den Schluss bildet ein Steuerwagen

3. Fahrrad&Gepäckwagen werden immer paarweise eingesetzt, also FF, FFFF, …

4. Es können nicht mehr als vier Grossraumwagen in einer Reihe (direkt hintereinander) im Zug sein

5. Nach jeder Gruppe von Grossraumwagen muss ein Speisewagen gekoppelt sein.

132

(42)

Beispiele (legaler und illegaler Züge)

§ LZ -- legal, kürzester Zug

§ LLLFFZ -- legal (aber kein Platz für Passagiere)

§ LGGSFFGSFFFFZ – legal, Zug mit allen Wagentypen

§ LLFF – illegal, Zug ohne Steuerwagen

§ LGGGGFFZ – illegal, kein Speisewagen nach Gruppe Grossraumwagen

§ LGGSFFFZ – illegal, ungerade Anzahl Fahrrad&Gepäckwagen

§ LGGGGGSZ – illegal, > 4 Grossraumwagen hintereinander

(43)

1.4 Graphische Darstellung von EBNF Regeln

§ Syntax Graph: graphische Darstellung

§ Macht es leichter zu erkennen, welche Zeichen in einem Symbol (in welcher Reihenfolge) auftreten müssen

§ Aufreihung: A B C D als Graph:

§ Option: [ A ] als Graph:

134

§ Wiederholung: { A } als Graph:

(44)

Graphische Darstellung von EBNF Regeln

§ Syntax Graph: graphische Darstellung

§ Macht es leichter zu erkennen, welche Zeichen in einem Symbol (in welcher Reihenfolge) auftreten müssen

§ Aufreihung: A B C D als Graph:

§ Option: [ A ] als Graph: § Wiederholung: { A } als Graph:

A B C D

(45)

§ Auswahl: A | B | C | D als Graph

139

(46)

Pfad durch Graph: legales Symbol

§ Aufreihung: durch jedes Element in der Reihe

§ Auswahl: ein Element in der Leiter

§ Option: entweder obere Kante (mit Element) oder untere (ohne)

§ Wiederholung: wie Auswahl

§ Einzige Form die einen Pfeil von rechts nach links hat

(47)

Wofür wir ( und ) gebrauchen können

§ A B | C

§ Welcher Graph?

142

A

B

C

A B

C

(48)

Wofür wir ( und ) gebrauchen können

§ A B | C

§ Um Unklarheit zu vermeiden verwenden wir ( und )

§ A ( B | C )

§ (A B ) | C --- wenn es keine Klammern gibt

A

B

C

A B

C

(49)

EBNF Beispiel (i1) nochmal

144

(50)
(51)

Substitution

§ Können einen Syntax Graphen in einen

anderen einsetzen

§ “interne” Namen verschwinden

150

(52)
(53)

Was für Symbole sind legal?

1.

2.

154

3.

(54)
(55)

158

(56)

Was für Symbole sind legal?

§ ( und ) erlauben uns klare Darstellung A ( B|C ) vs. (AB) | C

C A

B

(57)

Control forms (zum Kombinieren)

§ Aufreihung

§ Auswahl (Entscheidung)

§ Option, Wiederholung

§ Rekursion

161

(58)

Rekursion

§ Eine rekursive Beschreibung manchmal nötig um komplizierte Symbole zu beschreiben

§ Rekursive Beschreibung enthält rekursive Regeln

§ Eine Regel ist direkt rekursiv wenn ihr Name in der Definition verwendet wird

§ Also LHS erscheint auch auf der RHS

§ r | A r

§ r | ( A r ) falls Sie Unklarheit vermeiden wollen

(59)

167

(60)

Diskussion

§ Warum der Aufwand?

§ r { A }

§ Kann jede Wiederholung durch Rekursion ausgedrückt werden?

§ Kann jede Rekursion durch Wiederholung(en) ausgedrückt werden?

(61)

171

(62)
(63)

Diskussion

§ Kann jede Rekursion durch Wiederholung(en) ausgedrückt werden?

§ Nein

§ Finden Sie eine Beschreibung für An Bn (n Zahl ≥ 0: also gleiche Anzahl A, B)

EBNF Description balance

balance | A balance B balance | ( A balance B )

174

(64)
(65)

§ Direkte Rekursion

§ r A | A r

§ Indirekte Rekursion

§ Folge von Regeln N1 … Nk so dass N2 auf der RHS von N1, N3 auf der RHS von R2, … und N1 auf der RHS von Nk erscheint

§ name1 A name2

§ name2 B name1 | C

177

(66)

Nachtrag : Ableitungsbaum, Tabellen, Graphen

§ Ein Ableitungsbaum oder eine Tabelle demonstrieren, dass ein Symbol legal gemäss einer EBNF Beschreibung sind.

§ In beiden Fällen kürzen wir die Schritte manchmal ab wenn keine Verwechslungsgefahr besteht.

§ Ein (EBNF) Graph ist eine andere Darstellung einer EBNF Beschreibung

§ Ein Pfad durch den Graphen entspricht einem Symbol das legal ist

§ Umgekehrt: um zu zeigen, dass ein Symbol legal ist, finden wir einen Pfad

§ Graph für rekursive Beschreibung: nicht elegant (muss endlich sein!)

(67)

r B | A r

§ Ist AAB legal? -- Tabelle

179

Regel

r Anfang jeder Tabelle

B | A r Ersetzen von r durch RHS (1)

A r 2. Auswahlmöglichkeit gewählt (2)

A ( B | A r ) Ersetzen von r durch RHS (1), () zur Vermeidung von Missverständnissen

A A r 2. Auswahlmöglichkeit gewählt (2) A A ( B | A r ) Ersetzen von r durch RHS (1)

A A B 1. Auswahlmöglichkeit gewählt (2)

(68)

r B | A r

§ Ist AAB legal? -- Ableitungsbaum (Version 1)

§ In jeder Zeile wird eine EBNF Beschreibung durch die rechte

r

B A r

B A r

B A r

Auswahl getroffen

(69)

§ Ist AAB legal? -- Ableitungsbaum (Version 2)

§ Wir fassen Schritt 1 (Ersetzen der RHS) mit Schritt 2 (Auswahl treffen) zusammen

§ Unwichtiges lassen wir weg

181

r

B A r

B A r

B A r

(70)

§ Ist AA legal? -- Ableitungsbaum (Version 2)

§ Wir fassen Schritt 1 (Ersetzen der RHS) mit Schritt 2 (Auswahl treffen) zusammen

§ Unwichtiges lassen wir weg

r

A r

A r

r | A r

(71)

EBNF Geschichte

§ BNF enthielt erst nur Rekursion und Auswahl

§ Diese sind essential

§ Option und Wiederholung von Nicklaus Wirth hinzugefügt

§ Daher “E” – extended

§ Machen Beschreibung einfacher zu lesen

184

(72)

Nochmal integer

(73)

EBNF

§ Das war’s.

186

Referenzen

ÄHNLICHE DOKUMENTE

Balle ich die Wolken über der Erde zusammen und erscheint der Bogen in den Wolken, dann gedenke ich des Bundes, der be- steht zwischen mir und euch und allen Lebewesen, allen Wesen

Feuer als Symbol für den Zorn Gottes Vor allem im Alten Testament lesen wir immer wieder auch vom zornigen und strafenden Gott.. Feuer als Ort

Diese Zeichen können aber auch ein Symbol für unser Leben sein. Unser Leben führt uns nicht immer

§ Schiedsrichter entscheidet ob das Symbol legal ist oder nicht (für diese EBNF Beschreibung). § Symbol legal gemäss einer Regel: alle Buchstaben des Symbols stimmen mit den

§ Schiedsrichter entscheidet ob das Symbol legal ist oder nicht (für diese EBNF Beschreibung)2. § Symbol legal gemäss einer Regel: alle Buchstaben des Symbols stimmen mit den

§ Ein Ableitungsbaum oder eine Tabelle demonstrieren, dass ein Symbol legal gemäss einer EBNF Beschreibung sind.. § In beiden Fällen kürzen wir die Schritte manchmal ab wenn

§ Sie lernen zu entscheiden ob ein Symbol legal ist (für eine EBNF Beschreibung)?. § Sie können entscheiden ob zwei EBNF Beschreibungen äquivalent

!  Schiedsrichter entscheidet ob das Symbol legal ist oder nicht (für diese EBNF Beschreibung).?. !  Genaue