Parametr (informatyka)
Parametr (parametr formalny) − element składni w określonym języku programowania, umożliwiający komunikację pomiędzy podprogramem wywołanym a programem wywołującym[1]. Parametry określa się wraz z deklaracją określonego podprogramu, w jego nagłówku[2].
Funkcje parametru
Parametrem jest określony, zadeklarowany i zdefiniowany w programie (kodzie źródłowym), element (identyfikator), umożliwiający przekazanie argumentu do podprogramu oraz wyniku z podprogramu do zadania wywołującego tenże podprogram (nadrzędnego)[1]. Parametr może zostać zdefiniowany dla podprogramu lub programu. W tym drugim przypadku parametr służy do komunikacji danego programu (procesu) z systemem operacyjnym lub innym programem wywołującym[3].
Deklaracja i definicja parametru
Parametry zwykle, w większości języków programowania, deklaruje się i definiuje wraz z deklaracją podprogramu. Typowym sposobem jest utworzenie listy parametrów w nawiasie po nazwie podprogramu[2]. Tu najczęściej następuje zdefiniowanie atrybutów parametrów (np. typu).
Przykład w języku Pascal[4]:
{ Pascal }function Sum(a, b : integer):integer;begin Sum:=a+bend;
Przykład w języku C[5]:
/* C */int Sum(a, b) int a,b;{ return a+b;}
W powyższych przykładach zadeklarowano i zdefiniowano parametry a i b. W Pascalu deklaracja i definicja występuje razem[4], w języku C w nagłówku zadeklarowano parametry pod nagłówkiem a przed nawiasem otwierającym instrukcję blokową funkcji Sum, zdefiniowano parametry jako dane typu int (dotyczy pierwszych wersji języka C, w późniejszych standardach dopuszczono obie formy deklaracji parametrów).
Skojarzenie argumentu z parametrem
Parametr w podprogramie reprezentuje określoną wartość lub komórkę pamięci umożliwiającą komunikację z programem nadrzędnym. W momencie wywołania podprogramu następuje skojarzenie argumentu przekazywanego do podprogramu z odpowiednim parametrem. Skojarzenie takie dokonywane jest w wyniku wykonania instrukcji wywołania lub wywołania funkcji w wyrażeniu. Istnieją różne sposoby kojarzenia argumentów z parametrami[1].
Różne rozwiązania
W różnych językach programowania ich twórcy stosowali różne rozwiązania związane z parametrami.
Zmienna lista argumentów
W niektórych językach programowania lub ich konkretnych implementacjach istnieje możliwość przekazywania zmiennej liczby argumentów do podprogramu. Aby umożliwić odczyt w podprogramie wartości z listy argumentów o zmiennej ich liczbie, definiuje się parametr wskazujący na taką listę, a w deklaracji podprogramu umieszcza często symbol informujący kompilator, że podprogram może być wywoływany ze zmienną liczbą argumentów.
Stos zamiast parametrów
Specyfika niektórych języków programowania, np. Forth[6], powoduje, że do przekazywania argumentów do podprogramu używa się stosu zamiast parametrów. Podprogram odczytuje wartość ze stosu, która musi zostać tam umieszczona przed wywołaniem podprogramu. Jedynie wypracowany styl pisania programów w tym języku powoduje, że w kodzie źródłowym specyfikuje się parametry w wartość zwracaną, np.:
: Sum ( a, b -- a, b, c ) dup rot dup rot + ;
Lecz powyższa specyfikacja parametrów a i b oraz rezultatu a, b, c, jest tylko eleganckim stylem programowania, konwencją dobrowolnie stosowaną przez programistów, gdyż napis "( a, b -- a, b, c )" jest jedynie komentarzem.