Diskussion:Algol 60
aus Wikipedia, der freien Enzyklopädie
Call by Name - Beim Aufruf wird die Parameter-Variable durch den Parameter ersetzt. Dadurch wirken sich Änderungen der Variable auf den Aufrufer aus. Call by Name unterscheidet sich durch die Semantik der Ersetzung von dem heute üblichen Call by Reference;
- Was ist dann die Semantik, die den Unterschied ausmacht? Mir wird das nicht ganz klar. Meint das, im einen Fall wird direkt die Speicheradresse an das Unterprogramm übergeben, und im anderen Falle ein Variablenname, der vom Laufzeitsystem in eine Speicheradresse umgewandelt wird? Dann haben wir aber aus Programmierersicht keinen Unterschied ... --zeno 21:18, 8. Jun 2003 (CEST)
-
- Bei Call by Name wird in der aufgerufenen Funktion der Parameter textuell durch das Argument ersetzt. Mal ein Beispiel in Algol60:
real procedure sum(i, n, x, y); value n; integer i, n; real x, y; -- n: Call by Value, Rest: Call by Name begin real s := 0; for i = 1 step 1 until n do s := s + x*y; sum := s end
-
- Der Aufruf sum(k, m, a[k], b[k]) berechnet dann a[1]*b[1]+a[2]*b[2]+...+a[m]*b[m] --Sys64738 21:54, 8. Jun 2003 (CEST)