08.10.2013 Aufrufe

Download (1405Kb)

Download (1405Kb)

Download (1405Kb)

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.

4.2. DIE CBV-SEMANTIK 51<br />

Call-by-name Auswertung:<br />

head(liste1) −−→<br />

P<br />

head([] : liste1) −−→ []<br />

P<br />

Sowohl im Rahmen der Funktionsschemata ([Ind93], [Ind94]) als auch in dem des λ-Kalküls 1<br />

([Fie&Har88], Kapitel 6) werden die beiden Auswertungsmechanismen jeweils mit den Reduktionsstrategien<br />

leftmost-innermost ∗2 und leftmost-outermost gleichgesetzt. Hierbei heißt ein Redex<br />

eines Terms genau dann innermost£, wenn er keinen Redex als echten Teilterm enthält, und outermost,<br />

wenn er selbst kein echter Teilterm eines Redexes des Terms ist. Der leftmost Redex<br />

einer Menge von Redexen eines Terms ist dann der Redex, dessen Stelle die bezüglich der lexikographischen<br />

Ordnung kleinste Stelle all der Redexe der Menge ist. Bei der leftmost-innermost£<br />

Reduktionsstrategie wird in jedem Reduktionsschritt der leftmost-innermost ∗ Redex reduziert,<br />

und bei der leftmost-outermost Reduktionsstrategie entsprechend der leftmost-outermost Redex.<br />

In obigem Beispiel erfolgt die call-by-value Auswertung mit leftmost-innermost Reduktion und<br />

die call-by-name Auswertung mit leftmost-outermost Reduktion.<br />

Wir wollen nun auf Basis dieser beiden Auswertungsmechanismen zwei Semantiken für unsere<br />

Programme definieren.<br />

4.2 Die cbv-Semantik<br />

4.2.1 Die li-Reduktionssemantik<br />

Da die cbv-Semantik im allgemeinen mit der leftmost-innermost Reduktionsstrategie assoziiert<br />

wird, definieren wir diese für unsere Programme.<br />

Definition 4.1 Leftmost-innermost (li-) Reduktion<br />

Sei t ∈ TΣ.<br />

• Die Stelle u ∈ Occ(t) eines Redexes ˆ l = t/u ∈ RedP von t heißt genau dann innermost<br />

Redexstelle des Terms t, wenn<br />

• ˆ l = f(c1, . . .,cn) mit f (n) ∈ F, c1, . . .,cn ∈ TC, oder<br />

• ˆ l = selG,i(c) mit selG,i ∈ H, c ∈ TC, oder<br />

• ˆ l = condG(c, t1, t2) mit condG ∈ H, c ∈ TC, t1, t2 ∈ TΣ ist.<br />

• Die bezüglich der lexikographischen Ordnung kleinste innermost Redexstelle von t heißt<br />

leftmost-innermost Redexstelle des Terms t.<br />

u<br />

• Eine Reduktion A = t −−→ t<br />

l→r ′ heißt genau dann leftmost-innermostReduktion, wenn u<br />

die li-Redexstelle von t ist. Hierdurch ist auch die leftmost-innermost Reduktionsstrategie<br />

−−→<br />

Èli definiert.<br />

1<br />

Im λ-Kalkül wird allerdings normalerweise nur die Reduktion bis zur sogenannten weak head-normal form<br />

betrachtet.<br />

2<br />

Wir markieren hier den Begriff innermost mit einem ∗, da wir im folgenden innermost etwas von dem in der<br />

Literatur verwendeten Begriff abweichend definieren werden. Wir gehen an entsprechender Stelle noch hierauf ein.<br />

✷<br />

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!