Einführung in Parameter von Aufrufbarem im Rahmen der Lehre formaler Sprachen. [] (Argumente, Parameter, Aktualparameter), Lektion, Seite 721328
https://www.purl.org/stefan_ram/pub/formal_parameter_de ist die kanonische URI dieser Seite.
Stefan Ram

Parameter und Argumente

Der Name einer Operation kann selber auch wieder als ein Kern angesehen werden, zu dem sich noch ein Satellit gesellen kann, der dann Argument  genannt wird.

Die folgende Produktion zeigt, eine Wertangabe mit vorangestelltem Kern und einem eingeklammertem Argument.

Wertangabe mit Argument  ::=
Operation 〉 "(" 〈Argument 〉 ")".

Man bezeichnet solch einen Aufruf auch als einen Aufruf mit einem Argument  und sagt, die Operation werde mit dem Argument  Argument  aufgerufen  oder die Operation werde auf das Argument angewendet. Falls es möglich ist, eine bestimmte Operation mit einem Argument aufzurufen, sagt man auch, daß diese Operation ein Argument akzeptiere  oder erwarte.

Die Stelle  des Arguments in einer Anwendung einer Operation wird der Parameter  der Operation genannt. Ein Parameter bestimmt eine bestimmte Rolle  einer Angabe. Der Satellit, der in einer bestimmten Beschreibung an dieser Stellen tatsächlich geschrieben wird, um diese Rolle auszufüllen, wird Argument  genannt.

Man kann einen Parameter auch mit einem Einwurf eines Münzautomaten vergleichen: Ein bestimmter eingeworfener Betrag ist dann das Argument. Der Typ des Einwurfs ist „Münze“, das heißt: es werden nur Münzen als akzeptiert. Darüber hinaus sind auch nur Münzen mit bestimmten Werten erlaubt. Falls in den Einwurf etwas anderes eingeworfen wird als Münzen der zulässigen Werte, so ist das ein Fehler des Bedieners und nicht des Automaten.

Ein Muenzautomat mit einem "Muenzparameter"
  Muenzautomat(   )

                ^
| Muenze

Manchmal wurde früher (und wird gelegentlich auch noch heute) für das Argument auch die Bezeichnung „tatsächlicher Parameter “ [actual parameter ] verwendet, und der Parameter auch als Formalparameter  oder „formaler Parameter “ [formal parameter ] bezeichnet. Die Bezeichnung „Aktualparameter “ oder „aktueller Parameter “ ist eine falsche Übersetzung von “actual parameter ”, bei der “actual ” durch „aktuell“ „übersetzt“ wurde.

Wenn eine Operation einen Parameter hat, so bedeutet dies, daß sie ein Argument erwartet, also daß bei einer Wertangabe mit dieser Operation ein Argument anzugeben ist. Dann ist es im allgemeinen ein Fehler, die Operation ohne ein Argument aufzurufen. Umgekehrt ist es im allgemeinen ein Fehler, ein Argument zu verwenden, wenn die Operation gar keinen Parameter hat.

Der Parameter gibt an, was erwartet  wird. Das Argument ist dann das tatsächlich dafür angegeben.

Der Unterschied zwischen Parameter und Argument  soll noch einmal beschrieben werden:

Ein Parameter  gibt eine bestimmte Stelle  oder Rolle  an, für die beim Aufruf ein Wert angegeben werden kann. Ein Argument  ist dann ein Ausdruck, der bei einem bestimmten Aufruf tatsächlich angegeben wird, um den Wert eines Parameters für diesen Aufruf festzulegen. Wenn eine Operation einen Parameter hat, dann muß bei ihrem Aufruf ein Argument angegeben werden, hat sie hingegen keinen Parameter, dann darf bei ihrem Aufruf kein Argument angegeben werden.

Das Argument kann sich von Aufruf zu Aufruf unterscheiden.

In der Abbildung „Der Aufruf "f( 2 )"“ wird versinnbildlicht, wie ein bestimmter Argumentwert für die Stelle eines Parameters festgelegt wird.

Der Aufruf "f( 2 )"
  f(   )     Der Parameter (Die Stelle zwischen den runden Klammern)

     ^
| 2 Das Argument

Nicht in allen Texten wird sorgfältig zwischen Parametern und Argumenten unterschieden, daher muß bei der Lektüre von anderen Texten jeweils geprüft werden, was dort mit „Parameter“ und „Argument“ gemeint ist.

Datentypen

Falls etwas Aufrufbares einen Parameter hat (also ein Argument akzeptiert), dann ist es auch meistens spezifiziert (festgelegt), welchen Datentyp dieser Parameter hat. Das für den Parameter angegebene Argument muß dann entweder vom selben oder von einem verträglichen Datentyp sein. Es werden noch Argumente gewisser anderer Datentypen akzeptiert: Wenn sie dem erwarteten Datentyp hinreichend ähnlich sind, dann werden sie entsprechend uminterpretiert.

Wenn eine Operation beispielsweise einen Gleitkommaparameter hat, so wird als Argument zunächst auch ein Gleitkommawert erwartet. Es wird jedoch beispielsweise auch eine ganze Zahl akzeptiert, die dann stillschweigend als Gleitkommazahl interpretiert wird.

Semantik

Der Wert des Arguments kann die Bedeutung des Aufrufs beeinflussen, wobei die genaue Art der Beeinflussung von der Operation abhängt und ihrer Dokumentation entnommen werden kann.

Manchmal darf als Argument nicht jeder Ausdruck des Parametertyps angegeben werden. Der Aufruf mit einem unzulässigen Argumentwert ist falsch und sinnlos, wie auch der Aufruf mit einem Argument, das nicht vom richtigen Typ ist.

Es ist die Aufgabe (Verantwortung) des Autors einer Anwendung  dafür zu sorgen, daß der Typ und der Wert eines Arguments im vorgesehenen Bereich liegt. Diesen Bereich kann der Autor der Dokumentation der Operation entnehmen.

Wenn man einen Aufruf schreiben will, muß man sich also zunächst über den Typ und die Bedeutung des Parameters informieren und die zulässigen Argumentwerte ermitteln. Dann ist sicherzustellen, daß das verwendete Argument von einem verträglichen Typ ist und der Wert des Argumentes in der Menge der zulässigen Werte enthalten ist.

Beispiel

Das Negative einer Zahl, also das Produkt der Zahl mit −1, ist ihre Gegenzahl. Beispielsweise ist die Gegenzahl von 4 gleich −4 und die Gegenzahl von −4 ist 4.

In einer formalen Sprache könnte eine Anwendung "gegenzahl( 4 )" mit einem ganzzahligen Parametern möglich sein, welche die Operation "gegenzahl" mit dem Argument "4" verbindet und damit „Die Gegenzahl von 4“ beschreibt (also −4) ist. Die Schreibweise "gegenzahl( 4 )" erlaubt es dann also, mit einen Ausdruck die Gegenzahl von 4 anzugeben.

Übungsfrage Welchen Wert hat der Ausdruck "gegenzahl( gegenzahl( 4 ))"?

In verschiedenen Ausdrücken können für denselben Parameter unterschiedliche Argumentwerte angegeben werden.

Zwei verschiedene Argumente fuer den gleichen ganzzahligen Parameter
gegenzahl( 2 )

gegenzahl( 4 )

Verschachtelte Beschreibungen

In dem Ausdruck "gegenzahl( gegenzahl( 4 ))" ist das Argument "gegenzahl( 4 )" selber wieder ein Ausdruck. Der äußere (erste) Kern „sieht“ als den Wert seines Arguments dann den Wert der inneren Beschreibung "gegenzahl( 4 )" an.

Kompliziertere Dinge oder Sachverhalte lassen sich meist durch die Verschachtelung (Kombination) mehrerer Beschreibungen angeben und letztendlich sind Quelldatei einer formalen Sprache nichts anderes als solche ineinander verschachtelten Angaben.

Wortkunde

Der Parameter

Genitiv „des Parameters“, Mehrzahl „die Parameter“.

Aussprache pa'ra:metɐ

Herkunft „παρά “ (griechisch für „neben“) + „τὸ μέτρον “ (griechisch für „Maß“), d.h. „begleitende Maßangabe“.

Übungsaufgaben

/    actual
Verwenden Sie ein Wörterbuch, um die Bedeutung des englischen Wortes „actual“ zu ermitteln.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Von der Stefan-Ram-Startseite ausgehend finden sich oft noch mehr Informationen zu Themen, die auf einer Seite angesprochen wurden. (Eine Verbindung zur Stefan-Ram-Startseite befindet sich ganz oben auf dieser Seite.)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. slrprd, PbclevtugFgrsnaEnz