"Ein Wort ist eine endliche Folge von Elementen aus dem Alphabet.\n",
"Ein Wort ist eine endliche Folge von Elementen aus dem Alphabet.\n",
"Im Skript schreiben wir $w \\in \\Sigma^{*}$; hier im Notebook schreiben wir\n",
"Im Skript schreiben wir $w \\in \\Sigma^{*}$; hier im Notebook schreiben wir\n",
"$w \\in seq(\\Sigma)$.\n",
"$w \\in \\mathrm{seq}(\\Sigma)$.\n",
"\n",
"\n",
"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$.\n",
"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$.\n",
"\n",
"\n",
...
@@ -95,7 +95,7 @@
...
@@ -95,7 +95,7 @@
"cell_type": "markdown",
"cell_type": "markdown",
"metadata": {},
"metadata": {},
"source": [
"source": [
"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 $\\mathrm{size}(w)$:"
"Leider ist in der BSprache das Symbol λ schon vergeben (zur Definition von Funktionen). Deshalb müssen wir in einer weiteren Abweichung vom Skript Epsilon verwenden.\n",
"Leider ist in der B-Sprache das Symbol $\\lambda$ schon vergeben (zur Definition von Funktionen). Deshalb müssen wir in einer weiteren Abweichung vom Skript Epsilon verwenden.\n",
"\n",
"\n",
"Eine formale Sprache ist eine jede Teilmenge von $\\Sigma^*$."
"Eine formale Sprache ist eine jede Teilmenge von $\\Sigma^*$."
"evalue": "Executing operation $initialise_machine with predicate 1=1 produced errors: Could not execute operation INITIALISATION in state root",
"text/plain": [
"output_type": "error",
"Executed operation: INITIALISATION()"
"traceback": [
"\u001b[1m\u001b[31mjava.lang.IllegalArgumentException: Executing operation $initialise_machine with predicate 1=1 produced errors: Could not execute operation INITIALISATION in state root\u001b[0m"
Dieses Notebook begleitet Vorlesung 3 und erläutert die grundlegenden Definitionen der formalen Sprachen.
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 \mathrm{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 $\mathrm{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 BSprache 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 $\lambda$ 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]$
$[\mathit{a},\mathit{a},\mathit{b},\mathit{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.
java.lang.IllegalArgumentException: Executing operation $initialise_machine with predicate 1=1 produced errors: Could not execute operation INITIALISATION in state root