Definicja w programowaniu komputerów, to definicja określonego elementu (obiektu) programu zawarta w kodzie źródłowym. Tworzy ona określony element (obiekt) kodu, taki jak np.: stała, zmienna, podprogram, klasa itp. Definicja często występuje łącznie z deklaracją i stanowi z nią jedną konstrukcję programistyczną. Literatura przedmiotu stosuje w tym przypadku pojęcie deklaracji. Czasem zachodzi jednak potrzeba oddzielenia deklaracji od definicji.

Elementy polegające definiowaniu Definiowaniu w językach programowania podlegać mogą między innymi: zmienne, stałe, typy, klasy moduły (biblioteki, pakiety, itp.) podprogramy, metody parametry podprogramów inne elementy, specyficzne dla konkretnego języka programowania lub jego konkretnej implementacji.

Przykłady definicji oddzielonych od deklaracji Zmienne Generalnie typowym rozwiązaniem dla zmiennych statycznych stosowanym w językach programowania jest deklaracja zmiennej, która stanowi równocześnie jej definicję. Potrzeba oddzielnej definicji i jej deklaracji wiąże się między innymi z podziałem kodu źródłowego na moduły. Jeżeli w określonym module ma zostać użyta zmienna publiczna z innego modułu to w tym module występować może (jeżeli język tego wymaga, np. dla modułów kompilowanych niezależnie) deklaracja tej zmiennej (np. z atrybutem external), a definicja zmiennej znajduje się w tym innym module.

Podprogramy Stosowanie definicji podprogramu i oddzielnej deklaracji w zasadzie wymagane jest jak dla zmiennych przy podziale podprogramów na moduły. Przykładowo w języku C powszechnie stosuje się pliki nagłówkowe włączane do danego modułu, zawierają deklaracje potrzebnych podprogramów i innych elementów, natomiast ich definicje realizowane są niezależnie. Takie postępowanie w pewnych językach jest także wymagana dla podprogramów użytych przed ich zdefiniowaniem w ramach jednego modułu. Tak jest np. w języku Pascal, w którym musi wystąpić deklaracja zapowiadająca z użyciem frazy forward występującym po nagłówku podprogramu, w przypadku gdy definicja podprogramu znajduje się dalej.

procedure pr1(parametry); forward; { deklaracja podprogramu pr1 } procedure pr2; { definicja podprogramu pr2 – początek, jej nagłówek jest równocześnie deklaracją tego podprogramu } begin pr1 end; { definicja podprogramu pr2 – koniec} procedure pr1(parametry); { definicja podprogramu pr1 – początek } begin { kod procedury } end; { definicja podprogramu pr1 – koniec}

Metody W pewnych obiektowych językach programowania przyjęto składnię, w której definicja klasy zawiera jedynie deklarację metod w niej zawartych. Sama definicja tych metod zostaje natomiast umieszczonej odrębnie. Wskazanie do której klasy przynależy dana definicja metody, realizowane jest za pomocą selekcji umieszczonej w nagłówku definicji podprogramu. Przykład w języku C++:

class Pr{ public : void proc(); /* deklaracja metody proc w klasie Pr */ int func(int x); /* deklaracja metody func w klasie Pr */ }; void Pr::proc() /* definicja metody proc dla klasy Pr – początek */ { /* treść metody proc */ } /* definicja metody proc dla klasy Pr – koniec */ int Pr::func(int x) /* definicja metody func dla klasy Pr – początek */ { /* treść metody func */ } /* definicja metody func dla klasy Pr – koniec */

Parametry Najczęściej deklaracja i definicja parametrów podprogramu zawarta jest w jednym miejscu w nagłówku podprogramu. Jednak w pewnych językach stosowano rozwiązania, które obecnie stanowią zaszłości, polegające na tym, że w nagłówku podprogramu znajdowała się sama deklaracja parametru, a dopiero za nim jego definicja. Taka konstrukcja istniała w pierwszych wersjach języka C, w którym definicja parametrów umieszczana była za prototypem funkcji.

int func(a,b) /* deklaracja parametrów w nagłówku podprogramu */ int a,b; /* definicja parametrów */ { /* treść funkcji */

Przypisy

Bibliografia

Kategoria:Konstrukcje programistyczne