Kurzschlußbewertung

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

*Während in der mathematischen Notation A und B nur die Werte TRUE und FALSE annehmen können, gibt es in Oberon auch noch die Möglichkeit, daß die Evaluation einer der Operanden entweder undefiniert ist oder zu einem Laufzeitfehler führt.
 
*Beispiel: Was passiert bei der Bewertung von
(j > 0) & (i MOD j = 0) falls j = 0? Hier würde die Bewertung des rechten Operanden des &-Operators zu einem Laufzeitfehler führen.
 
*Oberon (und viele andere Programmiersprachen) lassen dies zu. Sie bewerten bei & und OR zunächst den linken Operanden und betrachten den rechten Operanden dann und nur dann, wenn das Resultat tatsächlich davon abhängt. Das wird als Kurzschlußbewertung bezeichnet.
 
*Interpretation von A & B:
IF A THEN
   result := B; (* B wird bewertet *) 
ELSE
   result := FALSE; (* B bleibt unbewertet *)
END;
 
*Interpretation von A OR B:
IF A THEN
   result := TRUE; (* B bleibt unbewertet *)
ELSE
   result := B; (* B wird bewertet *)
END;
 
*Entsprechend verlieren diese Operatoren die Eigenschaft der Kommutativität in Oberon.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005