Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Für den Zusammenhang zwischen Quell- und Zielsprache definieren wir eine Interpretationsfunktion mit folgenden<strong>der</strong><br />
Funktionalität:<br />
s : Syntaktische Aussage × Zustand → Ziel Wahrheitswert<br />
Diese Definition besagt, daß die Funktion s ein Objekt vom Typ Syntaktische Aussage (soll heißen einen<br />
Ableitungsbaum) und ein Objekt von Typ Zustand nimmt und ein Objekt vom Typ Ziel Wahrheitswert (soll<br />
heißen ein Element <strong>der</strong> Zielsprache) liefert. D.h. die Funktion s ist eine Funktion mit zwei Argumenten, die<br />
einen Ausdruck <strong>der</strong> Quellsprache zusammen mit einem Zustand auf einen Wahrheitswert <strong>der</strong> Zielsprache<br />
abbildet. Aus Platzgründen werden wir im folgenden, statt jedesmal explizit den Baum anzugeben, uns auf<br />
den durch ihn ableitbaren Ausdruck beschränken.<br />
Wozu benötigen wir einen Zustand? In dem ’Quell Ausdruck’ treten u.U. Bezeichner auf. Wir brauchen daher<br />
eine Handhabe, um zu entscheiden, welcher Wert (d.h. welches Element aus Ziel Wahrheitswerte) einem<br />
Bezeichner zugeordnet wird. Zu diesem Zweck führen wir den Begriff des Zustandes ein.<br />
Definition 2.1.1 (Zustand)<br />
Ein Zustand ist eine Funktion, von <strong>der</strong> Menge <strong>der</strong> Bezeichner in die <strong>der</strong> Wahrheitswerte wahr und<br />
falsch, also die semantischen Wahrheitswerte, d.h.<br />
Zustand : Bezeichner → Ziel Wahrheitswert<br />
In <strong>der</strong> Logik wird die Funktion Zustand häufig als Belegung bezeichnet.<br />
Dieser ’Zustand’, d.h. die Funktion kann z.B. über eine Wertetabelle festgelegt werden.<br />
Beispiel 2.1.2<br />
Sei Zustand die durch [a ↦→ wahr, bc ↦→ falsch, mu ↦→ wahr] gegebene Funktion.<br />
Dann bedeutet Zustand(a) die Anwendung <strong>der</strong> Funktion Zustand auf den Bezeichner a:<br />
Zustand(a) = wahr und entsprechend Zustand(bc) = falsch und Zustand(mu) = wahr.<br />
Man beachte, daß Zustand keine totale Funktion ist, da Zustand nicht für alle möglichen Bezeichner<br />
definiert ist; Zustand(Marion) ist bspw. undefiniert. Man mache sich klar, daß auch bei <strong>der</strong> Auswertung<br />
einer Gleichung x + 4 = 9 <strong>der</strong> Wert von x bekannt sein muß, um den Wert <strong>der</strong> Aussage zu ermitteln.<br />
Wir gehen davon aus, daß je<strong>der</strong> Bezeichner in einer Aussage in dem jeweiligen Zustand definiert ist; an<strong>der</strong>enfalls<br />
ist die gesamte Interpretation undefiniert. Dann werden die Definitionsgleichungen über die syntaktische<br />
Struktur <strong>der</strong> Aussagen rekursiv wie folgt definiert:<br />
s (Bezeichner, state) = state(Bezeichner)<br />
s (T, state) = wahr<br />
s (F, state) = falsch<br />
s ((Aussage), state) = s (Aussage, state)<br />
s (¬ Faktor, state) = (nicht s (Faktor, state))<br />
s (Term ∧ Faktor, state) = (s (Term, state) und s (Faktor, state))<br />
s (Ausdruck ∨ Term, state) = (s (Ausdruck, state) o<strong>der</strong> s (Term, state))<br />
s (Imp-Ausdruck ⇒ Ausdruck, state) = (s (Imp-Ausdruck, state) impl s (Ausdruck, state))<br />
s (Aussage ⇔ Imp-Ausdruck, state) = (s (Aussage, state) gleich s (Imp-Ausdruck, state))<br />
Abbildung 2.8: Semantik aussagenlogischer Formeln<br />
Was auf den ersten Blick kompliziert aussieht, ist eigentlich nicht sehr schwierig. ’s (Quell Ausdruck, state)’<br />
bedeutet, daß die Semantik des quellsprachlichen Ausdrucks Quell Ausdruck im Zustand ’state’ definiert wird;<br />
genauer gesagt, daß die Funktion s auf die beiden Argumente Quell Ausdruck und state angewendet wird.<br />
Rechts von dem Gleichheitszeichen steht dann die zielsprachliche Definition für Quell ausdruck. In dieser<br />
Definition kann die Funktion s wie<strong>der</strong> auftreten. Das bedeutet dann, daß an dieser Stelle <strong>der</strong> Parameter auf<br />
seine syntaktische Struktur hin zu prüfen ist und <strong>der</strong> Ausdruck gemäß den Definitionen ersetzt werden muß.<br />
Zu berücksichtigen ist hier, daß auch diese Anwendung <strong>der</strong> Funktion s natürlich wie<strong>der</strong> einen state erfor<strong>der</strong>t.