Universit¨ at Siegen
Lehrstuhl Theoretische Informatik Markus Lohrey
Compilerbau I SS 2021
Ubungsblatt 1 ¨
Aufgabe 1 Geben Sie einen geeigneten regul¨ aren Ausdruck f¨ ur die ganzen Zahlen an. Achten Sie darauf, f¨ uhrende Nullen und −0 auszuschließen.
L¨ osung:
Sei Σ = {0, . . . , 9, −}. Der regul¨ are Ausdruck ist dann 0 | −?[1 − 9][0 − 9]
∗∈ E
Σ.
Mit anderen Worten J 0 | −?[1 − 9][0 − 9]
∗K = Z . Hierbei steht [i − j] f¨ ur {i, . . . , j} (siehe Aufgabe 3).
Aufgabe 2 Sei Σ ein endliches Alphabet. Zu r ∈ E
Σund m, n ∈ N mit m ≤ n soll r{m, n} f¨ ur mindestens m und h¨ ochstens n Wiederholungen von r stehen.
(a) Definieren Sie J r{m, n} K formal.
L¨ osung:
J r{m, n} K = [ { J r K
i
| m ≤ i ≤ n}
(b) Zeigen Sie, dass sich r{m, n} als abk¨ urzende Schreibweise (eines re- gul¨ aren Ausdrucks) auffassen l¨ asst.
L¨ osung:
Zun¨ achst definieren wir f¨ ur i ∈ N den Ausdruck r
i:= r ◦ · · · ◦ r
| {z }
imal
, wobei wir r
0= ε setzen. Es gilt offensichtlich, dass J r
iK = J r K
i
. Der Ausdruck r{m, n} l¨ asst sich dann schreiben als r
m| r
m+1| · · · | r
n. Es gilt, dass
J r
m| r
m+1| · · · | r
nK = J r
mK ∪ J r
m+1K ∪ · · · ∪ J r
nK
= [ { J r K
i