Kerne mit mehreren Parametern
Ein Kern kann auch mehrere Parameter haben. Wird er in einer Beschreibung verwendet, dann ist für jeden dieser Parameter ein Argument anzugeben. Die Argumente werden dabei durch Kommas getrennt.
- 〈Beschreibung 〉 ::=
- 〈Kern 〉 '(' [〈Argument 〉 { ',' 〈Argument 〉 }] ')'.
Die vorangegangene Produktion bringt auch die Möglichkeit zum Ausdruck, daß etwas Aufrufbares gar keinen oder einen Parameter hat. (Was in eckigen Klammern steht, kann weggelassen werden. Was in geschweiften Klammern steht, kann wiederholt oder weggelassen werden.)
Der Typ jedes vorhandenen Argumentes muß mit dem für diesen Parameter festgelegten Typ verträglich sein.
Die einzelnen Parameter und Argumente werden durch ihre Position in der gegebenen Reihenfolge bezeichnet, also beispielsweise als „erster Parameter“/„erstes Argument“, „zweiter Parameter“/„zweites Argument“, und so weiter. Man sagt im Falle eines solche Aufrufes auch, der Kern werde mit den Argumenten aufgerufen. Die Zuordnung erfolgt normalerweise durch die Reihenfolge: Das erste angegebene Argument legt also den Wert für den ersten Parameter fest, das zweite angegebene Argument den Wert für den zweiten Parameter und so weiter.
Es ist oft so, daß etwas Aufrufbares eine genau bestimmte Zahl an Parametern hat und genauso viele Argumente angegeben werden müssen.
Es könnte beispielsweise eine Abbildung "max" geben, die genau zwei ganzzahlige Parameter hat und den größeren der beiden Argumentwerte als Abbildungswert ergibt. Für die Zahl "2" und die Zahl "7" als Argument wird der Abbildungsausdruck dann als "max( 2, 7 )" geschrieben und hat den Wert "7".
Angesichts einer so definierten Abbildung wäre der Ausdruck "max( 2 )" fehlerhaft, da er zu wenig Argumente hat. Der Ausdruck "max( 2, 3, 6 )" wäre fehlerhaft, da er zu viele Argumente hat.
Bei den meisten Aufrufen ist auch die Reihenfolge der Parameter von Bedeutung. Bei zwei Parametern hat der erste Parameter oft eine andere Bedeutung als der zweite Parameter. So ergibt die Abbildung "div" den ganzzahligen Anteil der Division des Werts des ersten Arguments durch den Wert des zweiten Arguments. Während der Ausdruck "div( 7, 2 )" den Wert "3" hat, hat der Ausdruck "div( 2, 7 )" den Wert "0". (Die Argumente eines Aufrufs bilden also ein Tupel.)
- Hintergrundinformation Weitere Schreibweisen
- In einigen formalen Sprachen hat das Komma noch weitere Bedeutungen, die mit der Trennung von Parametern kollidieren können. Sprachen, die besonders an die deutsche Schreibweise angepaßt sind, verwenden das Komma in Zahlen als Dezimalkomma und bedienen sich dann manchmal des Semikolons zur Trennung von Parametern. In einigen Sprachen wird das Komma auch als Operator verwendet, doch diese Sprachen interpretieren Kommas, die direkt in den Klammern eines Aufrufs stehen (nicht unbedingt in verschachtelten Unterausdrücken) dann meistens als Kommas zur Trennung von Parametern: In solchen Sprachen hängt die Interpretation des Kommas also vom Ort der Verwendung ab.