Kapitel 11 - Grundlagen der Programmiersprachen - DdI
Kapitel 11 - Grundlagen der Programmiersprachen - DdI
Kapitel 11 - Grundlagen der Programmiersprachen - DdI
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>11</strong>-27<br />
1, falls u(x)=0<br />
F(u)=<br />
F(G(u)), sonst.<br />
Setzt man<br />
1, falls u(x)=0<br />
τ(F)(u)=<br />
F(G(u)), sonst,<br />
so kann man den Fixpunktsatz von Kleene verwenden und rechnen:<br />
1, falls u(x)=0 1, falls α=0<br />
τ(⊥)(u)= =<br />
⊥(G(u)), sonst ⊥, sonst.<br />
1, falls u(x)=0 1, falls α=0 1, falls α=0<br />
τ 2 (⊥)(u)= = 1, falls G(u)(x)=0 = 1, falls α-1=0<br />
τ(⊥)(G(u)), sonst ⊥(G(G(u))), sonst ⊥, sonst.<br />
Hierbei ist<br />
G(u)=D[ val x=x-1]u=u+{x=E[x-1]u}=u+{x=E[x-1]u-1}=u+{x=α-1}<br />
={x=α-1, c=1, f=(x, if x=0 then c else f(x-1),{c=1})}<br />
und folglich<br />
G(u)(x)=α-1.<br />
Also gilt:<br />
1, falls α=0<br />
τ 2 (⊥)(u)= 1, falls α=1<br />
⊥, sonst.<br />
1, falls u(x)=0 1, falls α=0 1, falls α=0<br />
τ 3 (⊥)(u)= = 1, falls G(u)(x)=0 = 1, falls α-1=0<br />
τ 2 (⊥)(G(u)), sonst 1, falls G 2 (u)(x)=0 1, falls α-2=0<br />
⊥, sonst ⊥, sonst.<br />
Hierbei gilt – wie oben – G 2 (u)(x)=α-2. Also insgesamt<br />
1, falls α=0<br />
τ 3 (⊥)(u)= 1, falls α=1<br />
1, falls α=2<br />
⊥, sonst.<br />
Dann gilt offenbar allgemein:<br />
1, falls 0≤α≤n-1,<br />
τ n (⊥)(u)=