Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Deklaracja (informatyka) - Wikipedia, wolna encyklopedia

Deklaracja (informatyka)

Z Wikipedii

Deklaracja (w informatyce) to konstrukcja programistyczna w określonym języku programowania, służąca do związania z określonym identyfikatorem jego znaczenia i atrybutów.

Spis treści

[edytuj] Elementy podlegające deklarowaniu

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:

przy czym deklaracja i definicja może występować razem, lub oddzielnie w różnych miejscach kodu źródłowego.

[edytuj] Miejsce deklaracji

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).

[edytuj] Rodzaje deklaracji

Deklaracje mogą być:

  • jawne
    • kompletne
    • częściowe
  • niejawne

[edytuj] Deklaracje niejawne

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:

  • domyślnej
  • niejawnej
  • kontekstowej

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.

[edytuj] Deklaracje jawne

Deklaracje jawne mogą być kompletne lub częściowe. W przypadku deklaracji częściowych mogą wystąpić następujące przypadki:

  • niesymetryczna struktura atrybutów (np. w deklaracji wystąpienie atrybutu EXTERNAL może oznaczać obiekt zewnętrzny (zmienną, procedurę itp.) zdefiniowany w innym module, a brak jego specyfikacji oznacza obiekt wewnętrzny (tworzony daną deklaracją w danym module), przy czym brak jest możliwości jawnej specyfikacji atrybutu przeciwstawnego dla EXTERNAL (np. o nazwie INTERNAL),
  • aparat atrybutów domyślnych, obowiązują tu zasady uzupełniania atrybutów wg metod jak dla deklaracji niejawnych (np. mogą istnieć atrybuty EXTERNAL i INTERNAL, przy czym brak jawnej specyfikacji któregokolwiek z tych dwóch przeciwstawnych atrybutów oznaczać będzie wystąpienie jednego z nich, np. INTERNAL).

[edytuj] Przykłady deklaracji

[edytuj] deklaracje zmiennych

[edytuj] C, C++

Deklaracje występują:

  • poza funkcją, klasą, metodą – dla zmiennych globalnych
  • na początku instrukcji blokowej { } dla zmiennych lokalnych.
 int global_var;
 main()
  {
    int y;
    ...
    {
       int z;
       ...
    }
    ...
  }

[edytuj] Pascal

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).

 program Przykład;
   var globar_var;
   ...
   procedure Licz();
     var local_var;
   begin
     ...
   end; {procedure}
 begin
    ...
 end. {program}

[edytuj] PL/1

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 BEGINEND) 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.

 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;

[edytuj] deklaracje etykiet

 {Pascal}
 program DclLabel;
   label Etykieta;
   …
 beginEtykieta: …;
   …
   goto Etykieta;
   …
 end.

[edytuj] deklaracje modułów

[edytuj] Turbo Pascal

 program DclUnit;
   uses Crt, Graph, MyUnit;
   ...
 begin
   ...
    Write('Użyto procedury modułu Crt');
   ...
 end.

[edytuj] Modula 2

 MODULE DclUnit;
   FROM InOut IMPORT
     Read, Write, ...;
   ...
   Write('Użyto procedury modułu InOut');
   ...
 END DclUnit.

[edytuj] deklaracje podprogramów

[edytuj] C, C++

W języku C, C++ 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);

[edytuj] Pascal

Deklaracje podprogramów stosuje się, gdy podprogram ma być wywołany, a nie został jeszcze zdefiniowany.

 { 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;
 beginend;

[edytuj] Turbo Pascal

Deklarację dyprzedzającą podprogramu stosuje tak jak w Pascalu. W Turbo Pascalu deklaracje występują także w modułach (stanowiących rozszerzenie Turbo Pascala w stosunku do Pascala) w sekcji interface.

 { Turbo Pascal }
 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
       …
       trunc:=z;
    end;
 end.

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com