Remove ads
konstrukcja programistyczna Z Wikipedii, wolnej encyklopedii
Deklaracja – konstrukcja programistyczna w określonym języku programowania, służąca związaniu z określonym identyfikatorem jego znaczenia i atrybutów.
W różnych językach programowania wymagania dotyczące deklaracji określonych obiektów programowych są bardzo zróżnicowane. Deklarowaniu ogólnie podlegać mogą:
W nomenklaturze informatycznej, czasem od deklaracji rozróżnia się definicję w odniesieniu do takich elementów jak między innymi:
przy czym deklaracja i definicja może występować razem, lub oddzielnie w różnych miejscach kodu źródłowego.
Deklaracje w kodzie źródłowym, zwykle musi poprzedzać pierwsze użycie danego identyfikatora w definiowanym algorytmie. Deklaracja stanowi więc informację dla translatora, która nie generuje kodu wykonywalnego (lecz często powoduje rezerwację pamięci).
Składnia większości języków programowania narzuca umieszczanie deklaracji w określonym miejscu kodu źródłowego. Jest to albo specjalna sekcja programu (modułu, podprogramu, pakietu), albo początek określonego bloku (czyli wszystkie deklaracje muszą zostać umieszczone w tekście programu przed pierwszą instrukcją danego bloku).
Deklaracje mogą być:
Deklaracje niejawne występują w językach programowania, które umożliwiają użycie identyfikatora bez jego jawnej deklaracji. W tym przypadku translator musi posiadać mechanizm przypisania do identyfikatora atrybutów na podstawie określonych metod:
Deklaracje niejawne mogą prowadzić do błędów, np. błąd literowy w identyfikatorze spowoduje utworzenie nowej zmiennej, a tym samym błąd w działaniu programu.
Deklaracje jawne mogą być kompletne lub częściowe. W przypadku deklaracji częściowych mogą wystąpić następujące przypadki:
Deklaracja zmiennej może zawierać oprócz samej deklaracji, także inicjalizację zmiennej, tj. nadanie zmiennej wartości początkowej.
Deklaracje występują[1][2][3]:
int global_var; main() { int y; ... { int z=1; getch(); int x=5; /*nie w języku C*/ ... } ... }
Deklaracje występują w programie lub podprogramie w specyfikacji bloku, zawartej pomiędzy nagłówkiem (program, procedure, function, unit (Turbo Pascal)), a słowem rozpoczynającym instrukcję grupującej danego bloku (begin)[4][5].
program Przykład; var globar_var; ... procedure Licz(); var local_var; begin
end; {procedure} begin
end. {program}
Deklaracja ma postać instrukcji DECLARE (lub skrótowe DCL) I może wystąpić w dowolnym miejscu wnętrza bloku (w PL/1 takim blokiem jest albo procedura od nagłówka PROCEDURE do słowa END albo instrukcja blokowa BEGIN … END) i dotyczy obiektów dostępnych w danym bloku. Język ma bardzo rozbudowaną składnię atrybutów i rozbudowany mechanizm atrybutów domyślnych i deklaracji niejawnych[6][7].
Przykład: PROC; ... /* użyto zmiennej X zadeklarowanej dalej */ X=1; ... /* deklaracja w bloku może wystąpić po użyciu identyfikatora lecz deklarowana zmienna dostępna jest od początku bloku */ DCL X FIXED DECIMAL(5,0); ... END Przykład;
{Pascal} program DclLabel; label Etykieta; … begin … Etykieta: …; … goto Etykieta; … end.
Turbo Pascal[5]:
program DclUnit; uses Crt, Graph, MyUnit; ... begin ... Write('Użyto procedury modułu Crt'); ... end.
Modula 2[8]:
MODULE DclUnit; FROM InOut IMPORT Read, Write, ...; ... Write('Użyto procedury modułu InOut'); ... END DclUnit.
Deklaracja podprogramu ma postać nagłówka podprogramu definiującego oprócz identyfikatora przypisanego podprogramowi, także inne, wymagane przez dany język programowania elementy, jak np. parametry. Może także zawierać opcjonalne frazy i modyfikatory, np. dotyczące rozmieszczenia w pamięci, czy sposobu pobrania podprogramu zewnętrznego z biblioteki.
W języku C[1][2][3], C++[3] deklaracje podprogramów (nazywane prototypem) umieszcza się najczęściej w plikach nagłówkowych, definiujących określone moduły.
/* prototyp funkcji trunc */ int trunc(double x);
Deklaracje podprogramów stosuje się, gdy podprogram ma być wywołany, a nie został jeszcze zdefiniowany[4][5].
{ Pascal } procedure Proc_1; forward; procedure Proc_2; begin … {wywołanie procedury, która nie została jeszcze zdefiniowana, wymagana była deklaracja} Proc_1; … end; … {Późniejsza definicja procedury} procedure Proc_1; begin … end;
Deklarację wyprzedzającą podprogramu stosuje tak jak w Pascalu. W Delphi deklaracje występują także w modułach (stanowiących rozszerzenie Delphi w stosunku do Pascala) w sekcji interface.
{ Delphi } unit Przykład; interface { deklaracja podprogramu dostępnego w innych modułach i programach } function trunc(x : real): integer; implementation { definicja zadeklarowanego wyżej podprogramu ponieważ parametr i wartość zwracana zostały zdefiniowane w deklaracji podporgramu w sekcji interface, nie jest wymagane ich powtórzenie } function trunc; begin …
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.