Anunț (informatica)

În limbajele de programare, o declarație ( declarație engleză  ) include o indicație a unui identificator , tip , precum și alte aspecte ale elementelor limbajului, cum ar fi variabile și funcții . Declarația este utilizată pentru a notifica compilatorului că există un element; acest lucru este destul de important pentru multe limbaje (cum ar fi C , de exemplu ) care necesită declararea variabilelor înainte de a putea fi utilizate.

Prezentare generală

În familia de limbaje BCPL , din care C++ și Java sunt membri , puteți specifica și dimensiunea unei variabile atunci când declarați un tip scalar, o matrice sau o matrice. În această familie, declarațiile (notificarea existenței și proprietăților unui element) și definițiile (furnizează direct implementarea în sine ) pot fi specificate independent unele de altele. Declarațiile sunt, în general, specificate în fișierele antet , care sunt apoi incluse în alte fișiere care se referă la ele pentru a utiliza acele declarații, dar nu au acces la definiție. Dacă definiția tipului nu se potrivește cu declarația specificată anterior a acestui element, atunci compilatorul emite un mesaj de eroare în acest caz.

Pentru variabile, definițiile atribuie valori zonelor de memorie rezervate la momentul declarării. Pentru funcții, definițiile oferă o descriere a corpului funcției în sine. Deși o variabilă sau o funcție poate fi declarată de mai multe ori, de obicei este definită o singură dată. Cu toate acestea, limbajele dinamice precum Javascript sau Python permit redefinirea funcțiilor.

O declarație este adesea folosită pentru a accesa o funcție sau o variabilă definită într-un alt fișier sursă sau bibliotecă .

Următoarele sunt câteva exemple de utilizare a declarațiilor C fără definiție :

extern char example1 ; extern int exemplu2 ; void exemplu3 ( void );

Și acum câteva exemple de definiții în limbajul C:

char exemplu1 ; int exemplu2 = 5 ; void exemplu3 ( void ) { int x = 7 ; }

Elemente definite în declarație

În diferite limbaje de programare, cerințele privind declararea anumitor obiecte de program pot varia foarte mult. În general, pot fi declarați următorii parametri:

În programare, uneori, o definiție se distinge de o declarație, în raport cu elemente precum:

  • tipuri,
  • constante,
  • literali,
  • rutine,
  • clase,

Mai mult, declarația și definiția pot fi combinate sau specificate separat în locuri diferite din codul sursă (până la fișiere diferite ).

Locul anunțului

O declarație în codul sursă ar trebui, în general, să preceadă prima utilizare a unui anumit identificator într-un program. Declarația este o informație pentru traducător care nu generează prin ea însăși cod executabil (dar adesea are ca rezultat o alocare de memorie ).

Sintaxa majorității limbajelor de programare prevede o declarație într-o anumită locație din codul sursă. Aceasta este fie o secțiune specială a programului (modul, subrutină, pachet), fie începutul unui bloc specific (adică toate declarațiile trebuie să fie în textul programului înainte de prima instrucțiune a acestui bloc).

Tipuri de reclame

Anunțul ar putea fi:

  • implicit,
  • explicit:
    • completă sau
    • parțial.
declarație implicită

Declarațiile implicite sunt folosite în limbaje de programare care permit utilizarea unui identificator fără a-l declara în mod explicit. În acest caz, traducătorul trebuie să aibă un mecanism pentru adăugarea de atribute la identificator pe baza anumitor metode:

  • Mod implicit,
  • implicit,
  • pe baza contextului.

Declarațiile implicite pot duce la erori, de exemplu, o greșeală de ortografie a unei litere într-un identificator va provoca o nouă variabilă, provocând astfel o eroare în acțiunea programului.

Declarație explicită

Declarațiile explicite pot fi complete sau parțiale . Declarațiile parțiale pot fi utilizate în următoarele cazuri:

  • structura asimetrică a atributelor (de exemplu, în declarație, indicarea unui atribut EXTERNALpoate desemna un obiect extern (variabilă, procedură etc.) definit într-un alt modul, iar absența indicației acestuia va însemna un obiect intern (descris prin acest declarație în acest modul), în plus, absența care specifică în mod explicit un atribut ar putea fi opusul pentru EXTERNAL(de exemplu, INTERNAL);
  • mecanismul de substituire a atributelor aplică aici principii similare de completare a atributelor cu metode pentru declarații implicite (de exemplu, pot exista atribute EXTERNALși INTERNAL, în plus, absența unei indicații explicite a atributului opus pentru oricare dintre ele va indica indicarea unuia dintre ele). , de exemplu, INTERNAL).

Exemple de declarații în limbi

Declarații variabile

O declarație de variabilă poate conține, pe lângă declarația în sine, și inițializarea variabilei , adică o indicație a valorii inițiale a variabilei.

C , C++

Reclamele sunt indicate:

  • în afara unei funcții, clase, metode pentru variabile globale ;
  • la începutul blocului de instrucțiuni { } pentru variabilele locale;
  • ca expresie în părțile ulterioare ale blocului de instrucțiuni {} pentru variabilele locale.
int global_var ; principal () { int y ; ... { int z = 1 ; getch (); int x = 5 ; /*nu funcționează pentru limbajul C*/ ... } ... } Pascal

Declarațiile sunt specificate într-un program sau subprogramul acestuia în specificația blocului, situat între antet (programe, proceduri, funcții, modul (Turbo Pascal)) și cuvântul care denotă începutul grupului de instrucțiuni al acestui bloc ( begin).

Exemplu de program ; var global_var ; ... procedura Licz () ; var local_var ; ÎNCEPE sfârşitul ; {procedura} începe sfârşitul . {program} PL/1

Declarația are forma unei instrucțiuni DECLARE(sau abreviată DCL) și poate fi specificată oriunde în bloc (în PL/1 un astfel de bloc este fie o procedură de la antet PROCEDUREla un cuvânt, ENDfie un bloc de instrucțiuni BEGIN ... END) și se referă la obiecte disponibile în acest bloc. Limbajul are o sintaxă a atributelor foarte extinsă și un mecanism extins pentru substituirea atributelor și declarații implicite.

Exemplu : PROC ; ... /* Folosește variabila X declarată mai jos */ X = 1 ; ... /* o declarație de bloc poate fi specificată folosind un identificator dar variabila declarată trebuie să fie disponibilă la începutul blocului */ DCL X FIXED DECIMAL ( 5 , 0 ) ; ... END Exemplu ;

Declarații de etichetă

Programul {Pascal} DclLabel ; etichetă Etichetă ; începe Etichetă : ; ... du -te la Etichetă ; sfârşitul .

Declarații de modul

Turbo Pascal programul DclUnit ; folosește Crt , Graph , MyUnit ; ... începe ... Scrie ( 'Procedura utilizează modulul Crt' ) ; ... sfârşitul . Modula-2 MODUL DclUnit ; FROM InOut IMPORT Citiți , Scrieți , ...; ... Scrie ( 'Procedura utilizează modulul InOut' ); ... END DclUnit .

Declarații de funcție

C , C++

În C, C++, declarațiile de funcții (numite și prototipuri ) sunt de obicei plasate în fișierele antet care definesc module specifice.

/* Prototipul funcției trunchi */ int trunc ( dublu x ); Pascal

Declarațiile de funcție se aplică atunci când funcția urmează să fie apelată , nu atunci când este definită.

Procedura { Pascal } Proc_1 ; înainte ; procedura Proc_2 ; begin {''Apelarea unei proceduri care nu a fost încă definită'' ''necesită declarație''} Proc_1 ; ... sfârşitul ; { Definirea procedurii ulterioare } procedure Proc_1 ; începe ... sfârşit ; Turbo Pascal

Declarația care precede funcția în sine este utilizată în același mod ca în Pascal. În Turbo Pascal, declarațiile sunt specificate și în module (extensia Pascal proprie a lui Turbo Pascal) în fișierul interface.

{ Turbo Pascal } unitate Exemplu ; interfaţă { declararea unei funcţii disponibilă în alte module şi programe } function trunc ( x : real ) : întreg ; implementare { definiția funcției declarate mai sus deoarece parametrii și valoarea returnată au fost definiți în declarație, funcțiile din secțiunea de interfață nu trebuie să le repete } function trunc ; incepe ...

Vezi și

Link -uri