Skip to content

Commit 9697eda

Browse files
committed
lecture: fix indentation/formatting (Regular)
1 parent 4e4310f commit 9697eda

File tree

3 files changed

+20
-30
lines changed

3 files changed

+20
-30
lines changed

homework/sheet01.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,9 @@ Sprache und zeigen Sie die Ableitungsbäume dazu.
4646
Recherchieren Sie zunächst den Aufbau von Gleitkommazahlen in Python und Java.
4747

4848
Erstellen Sie für jede der beiden Programmiersprachen reguläre Ausdrücke, DFAs und
49-
reguläre Grammatiken wie in Aufgabe A1.2. Verifizieren Sie Ihre Lösungen wie in Aufgabe
50-
A1.2. Vorgaben, die sich auf Längen oder Werte von Teilen der Zahlen beziehen, ignorieren Sie bitte.
49+
reguläre Grammatiken wie in Aufgabe A1.2. Verifizieren Sie Ihre Lösungen wie in
50+
Aufgabe A1.2. Vorgaben, die sich auf Längen oder Werte von Teilen der Zahlen
51+
beziehen, ignorieren Sie bitte.
5152

5253
# A1.4: Mailadressen? (1P)
5354

lecture/01-lexing/regular1.md

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,18 @@ title: Reguläre Sprachen, Ausdrucksstärke (Teil 1)
1111

1212
# Motivation
1313

14-
1514
## Was muss ein Compiler wohl als erstes tun?
1615

1716
::: notes
1817
Hier entsteht ein Tafelbild.
1918
:::
19+
2020
## Themen für heute
2121

2222
- Lexer
2323
- Endliche Automaten
2424
- Reguläre Sprachen
2525

26-
2726
# Endliche Automaten
2827

2928
## Alphabete
@@ -40,14 +39,12 @@ $\vert w \vert$ eines Wortes $w$ ist die Anzahl von Buchstaben, die es enthält
4039
Wörtern über diesem Alphabet. Sprachen können endlich oder unendlich viele Wörter
4140
enthalten.
4241

43-
4442
## State machine
4543

4644
::: notes
4745
Hier entsteht ein Tafelbild.
4846
:::
4947

50-
5148
## Deterministische endliche Automaten
5249

5350
Bestimmte State machines:
@@ -80,14 +77,12 @@ $A = (Q, \Sigma, \delta, q_0, F)$ mit
8077

8178
- $F \subseteq Q$ : die Menge der **Endzustände**
8279

83-
8480
## Beispiel
8581

8682
::: notes
8783
Hier entsteht ein Tafelbild.
8884
:::
8985

90-
9186
## Eingabewörter statt Buchstaben
9287

9388
**Def.:** Wir definieren $\delta^{\ast}: (Q \times \Sigma^{\ast}) \rightarrow Q$:
@@ -263,7 +258,7 @@ den folgenden Einschränkungen:
263258
Hier entsteht ein Tafelbild.
264259
:::
265260

266-
## Reguläre Sprachen
261+
## Reguläre Sprachen
267262

268263
**Satz:** Die von endlichen Automaten akzeptiert Sprachklasse, die von regulären
269264
Ausdrücken beschriebene Sprachklasse und die von regulären Grammatiken erzeugte
@@ -296,5 +291,3 @@ Sprachklasse sind identisch und heißen **reguläre Sprachen**.
296291
- k3: Ich kann einen DFA entwickeln, der alle Schlüsselwörter, Namen und weitere
297292
Symbole einer Programmiersprache akzeptiert
298293
:::
299-
300-

lecture/01-lexing/regular2.md

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ title: Reguläre Sprachen, Ausdrucksstärke (Teil 2)
1818
- Was sind formale und reguläre Grammatiken?
1919
- In welchem Zusammenhang stehen all diese Begriffe?
2020

21-
22-
2321
# Motivation
2422

2523
## Was haben reguläre Sprachen mit Compilern zu tun?
@@ -36,12 +34,12 @@ Hier entsteht ein Tafelbild.
3634

3735
## Wozu reguläre Sprachen im Compilerbau?
3836

39-
- Reguläre Ausdrücke
37+
Reguläre Ausdrücke
4038

41-
- definieren Schlüsselwörter und alle weiteren Symbole einer
42-
Programmiersprache, z. B. den Aufbau von Gleitkommazahlen
43-
- werden (oft von einem Generator) in DFAs umgewandelt
44-
- sind die Basis des *Scanners* oder *Lexers*
39+
- definieren Schlüsselwörter und alle weiteren Symbole einer
40+
Programmiersprache, z. B. den Aufbau von Gleitkommazahlen
41+
- werden (oft von einem Generator) in DFAs umgewandelt
42+
- sind die Basis des *Scanners* oder *Lexers*
4543

4644
# Lexer
4745

@@ -52,16 +50,15 @@ Ein **Lexer**
5250
- kann aus regulären Ausdrücken automatisch generiert werden
5351

5452
- wandelt mittels DFAs aus regulären Ausdrücken die Folge von Zeichen der
55-
Quelldatei in eine Folge von sog. Token um
53+
Quelldatei in eine Folge von sog. Token um
5654

5755
- bekommt als Input eine Liste von Paaren aus regulären Ausdrücken und
58-
Tokennamen, z. B. ("while", WHILE)
56+
Tokennamen, z. B. ("while", WHILE)
5957

6058
- Kommentare und Strings müssen richtig erkannt werden. (Schachtelungen)
6159

6260
- liefert Paare von Token und deren Werte, sofern benötigt, z. B. (WHILE, \_),
63-
oder (IDENTIFIER, "radius") oder (INTEGERZAHL, "334")
64-
61+
oder (IDENTIFIER, "radius") oder (INTEGERZAHL, "334")
6562

6663
## Wofür reichen reguläre Sprachen nicht?
6764

@@ -77,19 +74,17 @@ beschreiben, die unendlich viele Werte annehmen können.
7774
- Wo finden sich die oben genannten Variablen bei einem DFA wieder?
7875
- Warum ist die erste Sprache oben nicht regulär, die zweite aber?
7976

80-
8177
## Wie geht es weiter?
8278

8379
Ein **Parser**
8480

8581
- führt mit Hilfe des Tokenstreams vom Lexer die Syntaxanalyse durch
8682

87-
- basiert auf einer sog. kontextfreien Grammatik, deren Terminale die Token
88-
sind
83+
- basiert auf einer sog. kontextfreien Grammatik, deren Terminale die Token sind
8984

9085
- liefert die syntaktische Struktur in Form eines Ableitungsbaums (**syntax
91-
tree**, **parse tree**), bzw. einen **AST** (abstract syntax tree) ohne
92-
redundante Informationen im Ableitungsbaum (z. B. Semikolons)
86+
tree**, **parse tree**), bzw. einen **AST** (abstract syntax tree) ohne
87+
redundante Informationen im Ableitungsbaum (z. B. Semikolons)
9388

9489
- liefert evtl. Fehlermeldungen
9590

@@ -109,7 +104,8 @@ Ein **Parser**
109104

110105
::: outcomes
111106
- k1: Ich kenne die Aufgaben eines Lexers
112-
- k1: Ich kenne die Zusammenhänge zwischen DFAs, regulären Ausdrücken, regulären Grammatiken und Lexern
113-
- k2: Ich kann für eine Beispielsprache begründen, warum sie nicht mit einem der oben genannten
114-
Mechanismen beschrieben werden kann
107+
- k1: Ich kenne die Zusammenhänge zwischen DFAs, regulären Ausdrücken, regulären
108+
Grammatiken und Lexern
109+
- k2: Ich kann für eine Beispielsprache begründen, warum sie nicht mit einem der
110+
oben genannten Mechanismen beschrieben werden kann
115111
:::

0 commit comments

Comments
 (0)