Najlepsze pytania
Chronologia
Czat
Perspektywa

Podprogram zagnieżdżony

Z Wikipedii, wolnej encyklopedii

Remove ads

Podprogram zagnieżdżony (podprogram lokalny[a], podprogram wewnętrzny[b]) – w programowaniu konstrukcja programistyczna umożliwiająca tworzenie podprogramów zawartych w innych podprogramach, a więc o ograniczonym zasięgu widoczności. Podprogramy takie są więc podprogramami lokalnymi w stosunku do podprogramu nadrzędnego. Podprogram zagnieżdżony może zostać wywołany wyłącznie w bloku podprogramu, w którym został zagnieżdżony. Wszystkie podprogramy zagnieżdżone mają dostęp do obiektów zdefiniowanych lokalnie w podprogramie nadrzędnym (tj. elementów takich jak np. zmienne, stałe, typy lub inne, które może w danym języku programowania deklarować i definiować lokalnie).

W wielu językach programowania taka konstrukcja jest niedostępna i wszystkie podprogramy są deklarowane oraz definiowane na tym samym poziomie programu (modułu). Tak jest m.in. w języku C[1][2][3], C++[3] i podobnych. Istnieje jednak grupa języków programowania, w których zrealizowano zagnieżdżanie podprogramów. Takimi językami są między innymi: Ada[4][5], Pascal[6][7], PL/1[8][9], PL/SQL[10].

Przykład w języku Pascal[6][7]:

procedure A;
  var localA:integer;
  function AB:integer;
  begin
    { treść funkcji zagnieżdżonej AB }
  end;
  procedure AA;
  begin
    { treść procedury zagnieżdżonej AA }
    { zmienna lokalna localA zadeklarowana w procedurze nadrzędnej A
      jest także dostępna w podprogramach zagnieżdżonych }
    localA:=AB;
  end;
begin
  { wywołanie procedury zagnieżdżonej }
  AA
end;
Remove ads

Uwagi

  1. Użycie terminu podprogram wewnętrzny może być niejednoznaczne, gdyż część autorów publikacji używa takiego terminu w odniesieniu do zupełnie innej konstrukcji – typu inline.

Przypisy

Bibliografia

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads