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.
gelöst werden kann. Eine an<strong>der</strong>e Aufgabenstellung kann einen an<strong>der</strong>en Kalkül sinnvoll erscheinen lassen.<br />
Im Zusammenhang mit <strong>der</strong> Einführung <strong>der</strong> Programmiersprache Eiffel werden wir sehen, wie Programme<br />
und Aussagen über Programme als Logik aufgefaßt werden können und wie neue Aussagen abgeleitet werden<br />
können. Die Anwendung dessen ist die Verifikation von Programmen. Dort wird es dann durchaus Sinn<br />
machen, zur Abkürzung des Verfahrens die im Anhang angegebenen Regeln und Tautologien zu verwenden.<br />
2.1.5 Zusammenhang zwischen Syntax, Ableitungssystem und Semantik<br />
Um die zu Beginn des Kapitels erwähnte Kommunikation zu ermöglichen, müssen wir in <strong>der</strong> Lage sein, Aussagen<br />
innerhalb des syntaktischen Modells zu modifizieren, um zu entscheiden, ob zwei syntakische Aussagen<br />
äquivalent sind, o<strong>der</strong> ob eine an<strong>der</strong>e Beziehung zwischen ihnen besteht. Diese Entscheidung wird bereits im<br />
Fall <strong>der</strong> Aussagenlogik sehr mühsam, wenn eine Vielzahl von Variablen in den zur Diskussion stehenden<br />
Aussagen auftritt (die Wertetabellen werden leicht sehr umfänglich). Kurzum, wir brauchen die Möglichkeit<br />
innerhalb des Modells zu rechnen. Genau diese wird durch ein Ableitungssystem zur Verfügung gestellt.<br />
Das folgende Diagramm macht deutlich, daß für die Manipulation von syntaktischen Aussagen zwei Möglichkeiten<br />
bestehen. Entwe<strong>der</strong> man transfomiert die syntaktische Aussage in eine semantische und ’berechnet’<br />
dann den Wert innerhalb <strong>der</strong> Semantik o<strong>der</strong> man transformiert die syntaktische Aussage zunächst via<br />
Ableitungssystem in eine vereinfachte. Anschließend wird diese vereinfachte Aussage dann in <strong>der</strong> Semantik<br />
interpretiert.<br />
syntaktische Aussage<br />
Interpretation (s)<br />
syntaktische Ableitung<br />
Rechnen im syntaktischen Modell<br />
✲<br />
❍<br />
❍❍❍❍❍❍❍❍❍❍❍❍❥<br />
syntaktische Aussage<br />
Interpretation<br />
(s)<br />
❄<br />
semantische Ergebnisse<br />
Abbildung 2.11: Zusammenhang zwischen Syntax, Semantik und Ableitungssystem<br />
Bei den bislang gemachten Überlegungen zur Aussagenlogik, haben wir uns nur mit <strong>der</strong> Semantik <strong>der</strong> betrachteten<br />
logischen Operatoren ( ∧, ∨, ...) beschäftigt und gefor<strong>der</strong>t, daß für die atomaren Aussagen etwas wie eine<br />
Zustandstabelle existiert. Mit <strong>der</strong> Einführung <strong>der</strong> Prädikatenlogik werden wir darüber hinaus for<strong>der</strong>n, daß für<br />
Funktionssymbole (z.B. in folgendem Beispiel) ein angemessenes semantisches Äquivalent existiert. Für<br />
die Bestimmung des Wahrheitswertes eines logischen Ausdrucks o<strong>der</strong> für seine Vereinfachung erweist es sich<br />
jedoch häufig als notwendig, zusätzlich zu den bisher erwähnten Informationen Wissen über die inhaltlichen<br />
Zusammenhänge zwischen Teilaussagen zu haben. Ein Beispiel möge dieses verdeutlichen. Da <strong>der</strong> erste Teil<br />
<strong>der</strong> Konjunktion den zweiten inhaltlich ’umfaßt’, kann <strong>der</strong> Ausdruck<br />
(x + 5 i=0 i) < 100 ∧ (x + 5 i=3 i) < 200<br />
mit dem entsprechenden Wissen aus <strong>der</strong> Arithmetik vereinfacht werden zu x + 5 i=0 i < 100 .<br />
Wir wissen nämlich, daß aus (x + 15 < 100) geschlossen werden kann auf (x + 15 < 100) ∧(x + 12 < 200).<br />
Umformungen dieser Art sind in dem reinen Logikkalkül nicht mehr faßbar. An dieser Stelle kommt eine<br />
weitere ’Sorte’ des Wissens (auch als Domain-Wissen bezeichnet) ins Spiel. Es handelt sich um Informationen<br />
über die unterliegenden Datenstrukturen, o<strong>der</strong> vielleicht besser, über die Eigenschaften <strong>der</strong> verwendeten Funktionssymbole<br />
und <strong>der</strong> atomaren Aussagen. Auch dieses Wissen kann in einem geeigneten Kalkül formalisiert<br />
werden.