Dieses Notebook begleitet Vorlesung 3 und erläutert die grundlegenden Definitionen der formalen Sprachen.
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` prob
``` prob
::load
::load
MACHINE Alphabet
MACHINE Alphabet
SETS Σ = {a,b,c}
SETS Σ = {a,b,c}
END
END
```
```
%% Output
%% Output
Loaded machine: Alphabet
Loaded machine: Alphabet
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Ein Wort ist eine endliche Folge von Elementen aus dem Alphabet.
Ein Wort ist eine endliche Folge von Elementen aus dem Alphabet.
Im Skript schreiben wir $w \in \Sigma^{*}$; hier im Notebook schreiben wir
Im Skript schreiben wir $w \in \Sigma^{*}$; hier im Notebook schreiben wir
$w \in seq(\Sigma)$.
$w \in seq(\Sigma)$.
Im Skript schreiben wir Wörter in dem wir die Symbole aus $\Sigma$ hintereinander setzten: $abc$. Im Notebook schreiben wir $[a,b,c]$ für die Folge mit den drei Symbolen $a$, $b$ und $c$.
Im Skript schreiben wir Wörter in dem wir die Symbole aus $\Sigma$ hintereinander setzten: $abc$. Im Notebook schreiben wir $[a,b,c]$ für die Folge mit den drei Symbolen $a$, $b$ und $c$.
Also aus $abc \in \Sigma^*$ wird dies:
Also aus $abc \in \Sigma^*$ wird dies:
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` prob
``` prob
[a,b,c] ∈ seq(Σ)
[a,b,c] ∈ seq(Σ)
```
```
%% Output
%% Output
$\mathit{TRUE}$
$\mathit{TRUE}$
TRUE
TRUE
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` prob
``` prob
[a,a,b,c] ∈ seq(Σ)
[a,a,b,c] ∈ seq(Σ)
```
```
%% Output
%% Output
$\mathit{TRUE}$
$\mathit{TRUE}$
TRUE
TRUE
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Die Länge eines Wortes $w$ ist die Anzahl der Symbole in $w$. Im Skript schreiben wir $\|w\|$, im Notebook benutzen wir ```size(w)```:
Die Länge eines Wortes $w$ ist die Anzahl der Symbole in $w$. Im Skript schreiben wir $\|w\|$, im Notebook benutzen wir ```size(w)```:
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` prob
``` prob
size([a,b,c])
size([a,b,c])
```
```
%% Output
%% Output
$3$
$3$
3
3
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` prob
``` prob
size([a,a,b,c])
size([a,a,b,c])
```
```
%% Output
%% Output
$4$
$4$
4
4
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Das leere Wort ist das eindeutig bestimmte Wort der Laenge 0:
Das leere Wort ist das eindeutig bestimmte Wort der Laenge 0:
Leider ist in der B Sprache das Symbol λ schon vergeben (zur Definition von Funktionen). Deshalb müssen wir in einer weiteren Abweichung vom Skript Epsilon verwenden.
Leider ist in der B Sprache das Symbol λ schon vergeben (zur Definition von Funktionen). Deshalb müssen wir in einer weiteren Abweichung vom Skript Epsilon verwenden.
Eine formale Sprache ist eine jede Teilmenge von $\Sigma^*$.
Eine formale Sprache ist eine jede Teilmenge von $\Sigma^*$.
Man sieht hier, dass die Folge aabc, mathematisch gesehen eine totale Funktion von 1..4 nach $\Sigma$ ist. Wir können aber den "Pretty-Printer" beeinflussen und Folgen anders ausgeben:
Man sieht hier, dass die Folge aabc, mathematisch gesehen eine totale Funktion von 1..4 nach $\Sigma$ ist. Wir können aber den "Pretty-Printer" beeinflussen und Folgen anders ausgeben:
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` prob
``` prob
:pref PP_SEQUENCES=TRUE
:pref PP_SEQUENCES=TRUE
```
```
%% Output
%% Output
Preference changed: PP_SEQUENCES = TRUE
Preference changed: PP_SEQUENCES = TRUE
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` prob
``` prob
w₁
w₁
```
```
%% Output
%% Output
$[a,\mathit{a},\mathit{b},c]$
$[a,\mathit{a},\mathit{b},c]$
[a,a,b,c]
[a,a,b,c]
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Hier wird die Schreibweise von B für Folgen verwendet. Diese kann man auch so im Notebook eingeben.
Hier wird die Schreibweise von B für Folgen verwendet. Diese kann man auch so im Notebook eingeben.