Podprogram zagnieżdżony (podprogram lokalny, podprogram wewnętrzny) – 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, C++ 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, Pascal, PL/1, PL/SQL.

Przykład w języku Pascal: 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;

Uwagi

Przypisy

Bibliografia

Kategoria:Konstrukcje programistyczne