Namensparameter


Namensparameter

Ein Namensparameter (englisch call by name) ist ein Parameter eines Unterprogramms in Programmiersprachen, der nicht bei seiner Übergabe, sondern erst bei seiner Benutzung, entsprechend der Signatur des Aktualparameters berechnet wird. Dies wurde vor allem in der Programmiersprache COBOL, daneben auch in ALGOL 60 genutzt, ist jedoch in modernen Sprachen unüblich.

Zur Einordnung: In Fortran gibt es ausschließlich Referenzparameter, in C und Java nur Wertparameter, in C++ gibt es beides. Namensparameter existieren – mit Ausnahme von Präprozessor-Makros in C und C++, deren Argumente Namensparameter sind – in keiner dieser Sprachen.

Namensparameter ermöglichen sowohl die Übergabe als auch Rückgabe von Werten.

Ein einfaches Beispiel

A[1] := 10
A[2] := 20
i := 1
x := Funkt (A[i], i)

FUNCTION Funkt (a, i) : Real
  i := i+1
  RETURN a
END

x wird der Wert 20 zugewiesen. Im Werteparameter-Fall wäre x dagegen 10, ebenso bei Referenzparametern.

Ein angewandtes Beispiel in ALGOL 60

Als Beispiel soll die Simpsonsche Näherungsformel zur Integralberechnung dienen. Ein Flächenintegral


y = f(x)
F=\int_a^b{y dx}

kann in n Streifen der Breite h zerlegt werden. Dann lautet die hier verwendete Näherung:

h = (ba) / n
y_i=f(x_i)\quad\quad mit \quad x_i=a+h \cdot i, \quad i=0 \dots n
F \approx \frac{h}{3}(y_0+y_n+4(y_1+y_3+\cdots y_{n-1})+2(y_2+y_4+\cdots+y_{n-2}))

In Algol 60 wird dies folgendermaßen umgesetzt (das Beispiel ist nicht optimal, sondern eine möglichst genaue Umsetzung der Definition):


 1 'REAL' 'PROCEDURE' SIMPSON(A,B,F,X,N);
 2    'REAL' A, B, X;
 3    'INTEGER' N;
 4    'REAL' 'PROCEDURE' F;
 5 'BEGIN'
 6    'INTEGER' I;
 7    'REAL' H, S1, S2;
 8    'ARRAY' Y[0:N]; 
 9    H := (B-A)/N;
10    'FOR' I:=0 'STEP' 1 'UNTIL' N 'DO' 
11       'BEGIN'  
12          X:=A+H*I;
13          Y[I]:=F;
14       'END';
15    S1 := S2 := 0;
16    'FOR' I:=1 'STEP' 2 'UNTIL' N-1 'DO' S1:=S1+Y[I];
17    'FOR' I:=2 'STEP' 2 'UNTIL' N-2 'DO' S2:=S2+Y[I];
18    SIMPSON:=H/3*(Y[0]+Y[N]+4*S1+2*S2);
19 'END'

Alle Parameter sind hier Namensparameter. Davon wird bei den Parametern X und F besonders Gebrauch gemacht (Zeilen 12 und 13). In Zeile 8 wird ein dynamisches Feld deklariert. Das Integral

y=\int_0^1{\sin(k)}dk

wird näherungsweise (n=20) berechnet mittels

 Y:=SIMPSON(0,1,SIN(K),K,20);

Im Unterprogramm SIMPSON wird hier F durch SIN(K) und X durch K ersetzt.

Es sind auch Doppelintegrale möglich:

Das bestimmte Integral

z=\int_0^1{\int_{-1}^1{e^{\sqrt{x^2+y^2}}dy}\,dx}

kann näherungsweise mit

 Z:=SIMPSON(0,1,SIMPSON(-1,1,EXP(SQRT(X 'POWER' 2+Y 'POWER' 2)),Y,20),X,20);

berechnet werden. Dies ist weder mit Referenzparametern, Wertparametern noch mit einfachen C-Makros in dieser Form realisierbar.


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • ALGOL 60 — Die Programmiersprache Algol 60 wurde von 1958–1963 unter der Führung der Association for Computing Machinery (ACM) und der Gesellschaft für Angewandte Mathematik und Mechanik (GAMM), später dann der International Federation for Information… …   Deutsch Wikipedia

  • Funktionsparameter — Ein Parameter ist in der Informatik ein veränderliches Element eines Programms oder Unterprogramms, das bei der Definition des Unterprogramms formal angelegt (formaler Parameter) und beim Aufruf des Unterprogramms für jeweils diesen einen Aufruf… …   Deutsch Wikipedia

  • Option (Informatik) — Ein Parameter ist in der Informatik ein veränderliches Element eines Programms oder Unterprogramms, das bei der Definition des Unterprogramms formal angelegt (formaler Parameter) und beim Aufruf des Unterprogramms für jeweils diesen einen Aufruf… …   Deutsch Wikipedia

  • Parameterübergabe — Ein Parameter ist in der Informatik ein veränderliches Element eines Programms oder Unterprogramms, das bei der Definition des Unterprogramms formal angelegt (formaler Parameter) und beim Aufruf des Unterprogramms für jeweils diesen einen Aufruf… …   Deutsch Wikipedia

  • Type-Hinting — Ein Parameter ist in der Informatik ein veränderliches Element eines Programms oder Unterprogramms, das bei der Definition des Unterprogramms formal angelegt (formaler Parameter) und beim Aufruf des Unterprogramms für jeweils diesen einen Aufruf… …   Deutsch Wikipedia

  • Algol 60 — Die Programmiersprache Algol 60 wurde 1958–1963 unter der Führung der Association for Computing Machinery (ACM) und der Gesellschaft für Angewandte Mathematik und Mechanik (GAMM), später dann der International Federation for Information… …   Deutsch Wikipedia

  • Parameter (Informatik) — Parameter sind in der Informatik Variablen, über die ein Computerprogramm oder Unterprogramm, für einen Aufruf gültig, auf bestimmte Werte eingestellt werden kann. Diese Einstellungen werden bei der Verarbeitung berücksichtigt und beeinflussen… …   Deutsch Wikipedia