2.6 KiB
2.6 KiB
Hausaufgabe 1
Übung 1
1a
i)
s_1 = (xy)(xy)(xy)zzyxxxx ∈ Σ^*
s_2 = zzzzyyyx ∈ Σ^*
ii)
s_i = \{zy, zzxyy, zzzxxyyy\} ∈ Σ^*
iii)
s_{ij} = \{xxyzz, xxxyzzz, xxyzzzzz, xxxyzzzzzz\} ∈ Σ^*
1b
i)
- Für eine Zeichenkette der Länge n gibt es genau n + 1 Präfixe, nämlich:
- ε (die leere Zeichenkette)
- s[0]
- s[0..1]
- s[0..2]
- ...
- s[0..n-1] (die vollständige Zeichenkette)
- Da |s| = 10, ergibt das:
- Antwort: 11 Präfixe
ii)
- Für eine Zeichenkette der Länge n gibt es genau n − 1 solche Teilzeichenketten (man beginnt bei Index 0 bis n−2).
- Hier gilt |s| = 10, also:
- Antwort: 9 Teilzeichenketten der Länge 2
iii)
- Ein Suffix ist jede Zeichenkette, die man erhält, wenn man von einem bestimmten Index i (inkl. i) bis zum Ende der Zeichenkette geht. Auch hier gilt: Die leere Zeichenkette (Suffix, das am Ende beginnt) zählt mit.
- Also gibt es genau n + 1 Suffixe.
- Antwort: n + 1 Suffixe
Übung 2
2a
i)
L_1=\{uhu⋅x⋅vw | x ∈ Σ^*\}
ii)
L_2=\{xx⋅u⋅yzyz⋅v∣u,v∈Σ^*\}
iii)
L_3=\{w∈{0,1,2}^*∣\#_1(w)=2⋅(\#_0(w)+\#_2(w))\}
2b
- Anforderungen Python:
- Muss mit einem Buchstaben (a–z, A–Z) oder Unterstrich (_) beginnen
- Danach: beliebig viele Buchstaben, Ziffern (0–9) oder Unterstriche
- Keine Schlüsselwörter erlaubt, aber das ignorieren wir in dieser formalen Beschreibung
- Alphabet Σ:
Σ=\{a,…,z,A,…,Z,0,…,9,_\}
- Formale Sprache
L{PyVars}
:L{PyVars}=\{w∈Σ^*∣w=a_1a_2…a_n,a_1∈\{a-z,A-Z,\_\},a_i∈\{a-z,A-Z,0-9,\_\} für: {i=2…n}\}
⊆Σ^*
Übung 3
3a
Σ=\{<,>,/,d,i,v\}
- gültige Tags:
<div>
,</div>
- Formale Sprache:
L_{DivTagsNoAttr} = \{<div>, </div>\} ⊆ Σ^*
3b
- gültiger Beispieltag:
<div name1=wert1 name2=wert2>
- Attribute sind durch Leerzeichen getrennt, die Werte nicht in Anführungszeichen
- Neues Alphabet:
Σ=\{<,>,/, \space,d,i,v,a,b,...,z\}
- Syntax für ein Attribut:
name=wert
, wobeiname, wert ∈ \{a,...,z\}^+
attr ::= a^+=a^+
- Start-Tag mit beliebig vielen Attributen:
div attr1 attr2 ... attrn>
<div(\textvisiblespace a^+=a^+)^*>
- End-Tag wie vorher
</div>
-
L_{DivTags}=\{\{<div>\}, \{<div(\textvisiblespace a^+=a^+)^*>\}, \{</div>\}\} ⊆ Σ^*
L_{\text{DivTags}} =
\left\{
\begin{aligned}
&\langle \text{div} \rangle, \\
&\langle \text{div}(\textvisiblespace a^+ = a^+)^* \rangle, \\
&\langle / \text{div} \rangle
\end{aligned}
\right\}
\subseteq \Sigma^*