04.06.2013 Aufrufe

Skript zur Vorlesung - Universität Paderborn

Skript zur Vorlesung - Universität Paderborn

Skript zur Vorlesung - Universität Paderborn

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

26 KAPITEL 3. OPERATIONALE SEMANTIK<br />

angeben. Für unser obiges Beispiel können wir beispielsweise schreiben:<br />

a4 ≡ (x − 7) + 3 bzw. a ′ 4 ≡ x − (7 + 3). Auf ähnliche Weise benutzen<br />

wir in Anweisungen die Klammern 2 und um die Struktur der Anweisung<br />

explizit zu machen. Unser vorangegangenes Beispiel war wie<br />

folgt gemeint:<br />

z : = 1 ;<br />

y : = 1 ;<br />

while y ≤ x do<br />

z := y ∗ x ;<br />

y := y + 1 <br />

Diese Klammern gehören nicht zu der Syntax unserer Programmiersprache,<br />

weil wir ja nur die abstrakte Syntax, d. h. die Ableitungsbäume<br />

betrachten. Sie dienen uns nur dazu, diese Struktur in einer ansonsten<br />

mehrdeutigen Zeichenreihe zu finden. Die Klammern sind konkrete<br />

Syntax, um die Struktur eines Ausdruck oder Anweisung eindeutig zu<br />

machen. Wir gehen im folgenden immer davon aus, daß eine textuelle<br />

Repräsentation einer Anweisung genug konkrete Syntax enthält, um<br />

eindeutig auf die Struktur der Anweisung zu schließen.<br />

Streng genommen ist in der Anweisung<br />

z : = 1 ;<br />

y : = 1 ;<br />

while y ≤ x do<br />

z := y ∗ x ;<br />

y := y + 1 <br />

immer noch nicht genügend konkrete Syntax enthalten, um eindeutig auf die<br />

Struktur zu schließen. Aber das ist nicht ganz so schlimm. Warum?<br />

1.3 Syntaktische Gleichheit<br />

Wir nennen zwei Ausdrücke oder Anweisungen syntaktisch gleich, wenn sie<br />

denselben Ableitungsbaum besitzen, d. h. wenn die abstrakte Syntax gleich<br />

ist. Um die syntaktische Gleichheit auszudrücken, benutzen wir das Symbol<br />

≡, das wir auch schon benutzt haben, um Ausdrücke und Anweisungen zu<br />

benennen. Wenn also zwei Ausdrücke a0 und a1 gleich sind, schreiben wir<br />

2 Diese Klammern ersetzen das begin und end in herkömmlichen Programmiersprachen<br />

oder die geschweiften Klammern in Java oder C.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!