22.08.2013 Aufrufe

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!