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>-29<br />
0, falls u'(x)=0,<br />
(***) E[ if x=0 then 0 else f x]u'=<br />
E[ if x=0 then 0 else f x]u', sonst.<br />
Setzt man nun zur Abkürzung<br />
F:= E[ if x=0 then 0 else f x],<br />
so erhält man aus (***) folgende Funktionalgleichung<br />
0, falls u'(x)=0,<br />
F(u')=<br />
F(u'), sonst.<br />
Wir wenden den Satz von Kleene an und berechnen den Fixpunkt, indem wir setzen<br />
0, falls u'(x)=0<br />
τ(F)(u')=<br />
F(u'), sonst,<br />
so kann man den Fixpunktsatz von Kleene verwenden und rechnen:<br />
0, falls u'(x)=0 0, falls α=0<br />
τ(⊥)(u)= =<br />
⊥(u'), sonst ⊥, sonst.<br />
0, falls u'(x)=0 0, falls α=0 0, falls α=0<br />
τ 2 (⊥)(u)= = 0, falls u'(x)=α=0 =<br />
τ(⊥)(u'), sonst ⊥(u'), sonst ⊥, sonst.<br />
Also gilt:<br />
0, falls α=0<br />
τ 2 (⊥)(u)=<br />
⊥, sonst.<br />
Wegen τ 2 (⊥)(u)=τ(⊥)(u) ist F 0 :=τ(⊥) <strong>der</strong> kleinste Fixpunkt und die Semantik des Programms<br />
P". Man überzeuge sich von <strong>der</strong> Fixpunkteigenschaft durch Einsetzen von<br />
F 0 in die Gleichung τ(F)=F. Das Programm berechnet also die Funktion<br />
0, falls α=0,<br />
F 0 (α)=<br />
⊥, sonst.