Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
S : Syntaktische Aussage → (Zustand → Ziel Wahrheitswert)<br />
S ist ein Übersetzer, s ist ein Interpretierer. Das analoge Konzept existiert auch in <strong>der</strong> Analysis in Form des<br />
unbestimmten und des bestimmten Integrals. Die Definition erfolgt analog zu <strong>der</strong> von s über Funktionalgleichungen<br />
(das Ergebnis ist wie<strong>der</strong>um eine Funktion!) wie zum Beispiel:<br />
S (¬ Faktor)(state) = nicht S(Faktor)(state)<br />
Wir werden im weiteren immer die Interpretierer-Variante verwenden.<br />
2.1.4 Konversion - Ableitung<br />
Bislang haben wir nur die Möglichkeit, den Wert einer formalen Aussage dadurch zu bestimmen, daß wir<br />
die Semantik <strong>der</strong> Aussage berechnen und dann innerhalb des semantischen Modells <strong>der</strong>en Wert bestimmen.<br />
Darüber hinaus ist es häufig sinnvoll, auch über eine Möglichkeit zu verfügen, syntaktische Aussagen direkt zu<br />
manipulieren, ohne ihren Wert zu bestimmen und sei es nur, um die Lesbarkeit zu erhöhen. Die Notwendigkeit<br />
hierfür ergibt sich sowohl aus dem Wunsch, die Lesbarkeit von Aussagen zu erhöhen als auch aus dem Bestreben,<br />
den Wert einer Aussage zu bestimmen. Dies kann über das bereits eingeführte Verfahren, gerade dann<br />
wenn eine Aussage in vielen Variablen vorliegt, recht mühsam werden. Schon das Aufstellen <strong>der</strong> Wahrheitstafel<br />
erweist sich u.U. als ziemlich aufwendig (s. die im vorangegangenen Kapitel gezeigte Berechnungsvorschrift<br />
für die Zahl <strong>der</strong> Kombinationsmöglichkeiten).<br />
Es gibt zwei Möglichkeiten zur syntaktischen Manipulation, Konversion und Ableitung. Sowohl bei <strong>der</strong> Konversion<br />
als auch bei <strong>der</strong> Ableitung kommt es ausschließlich auf die syntaktische Struktur <strong>der</strong> betrachteten Sätze<br />
an. Die Semantik spielt keine Rolle. Wichtig ist auch, daß we<strong>der</strong> in Konversions- noch in Ableitungsregeln<br />
konkrete Sätze (d.h. Aussagen im Fall <strong>der</strong> Aussagenlogik) auftauchen, son<strong>der</strong>n sogenannte Aussagenvariablen.<br />
Diese stehen für beliebige Sätze <strong>der</strong> betrachteten formalen Sprache. Wichtig ist nur ihre syntaktische Zusammensetzung.<br />
Ableitung ist <strong>der</strong> allgemeinere Begriff. Man kann alle Konversionsregeln auch als Ableitungsregeln<br />
schreiben. Konversionsregeln können im Gegensatz zu Ableitungsregeln in beide Richtungen gelesen werden.<br />
2.1.4.1 Konversion<br />
Konversion dient dem Zweck, eine Aussage in eine semantisch äquivalente umzuformen. Der Äquivalenzbegriff<br />
muß für jede Sprache eigens eingeführt werden.<br />
Definition 2.1.5 (Äquivalenzen in <strong>der</strong> Aussagenlogik)<br />
Zwei Aussagen A und B heißen genau dann äquivalent, wenn in allen Zuständen gilt:<br />
s (A, state) = s (B, state)<br />
‘A ≡ B’ ist dann eine Äquivalenz o<strong>der</strong> eine korrekte Konversionsregel.<br />
Die Korrektheit einer Konversionsregel ist über ihre semantische Bedeutung natürlich nachzuweisen. Es erscheint<br />
sinnvoll, eine Vielzahl von Konversionsregeln einmal auf ihre Korrektheit zu prüfen, um das Vereinfachen<br />
von Aussagen zu erleichtern. Dabei können Konversionen auch als Optimierung über Aussagen <strong>der</strong><br />
Quellsprache verstanden werden, bevor die Berechnung in einem konkreten Zustand stattfindet.<br />
Diese Regeln in Abbildung 2.9 entsprechen jenen aus [Gries, 1981]. Die Ei sind Aussagenvariablen. Die Menge<br />
<strong>der</strong> Konversionsregeln sollte niemanden erschrecken. Viele haben Sie bereits schon häufig angewandt. Es ist<br />
jedoch für jede (formale) Sprache sinnvoll, sich <strong>der</strong> Regeln, <strong>der</strong>en man sich zur Manipulation von Sätzen<br />
bedient, zu vergewissern. K4 ist benannt nach Augustus De Morgan, einem Mathematiker des neunzehnten<br />
Jahrhun<strong>der</strong>ts, <strong>der</strong> zusammen mit Boole grundlegende Arbeiten auf dem Gebiet <strong>der</strong> Logik ausgeführt hat.