They are called "trampolines." Here is my understanding of what they are intended for, although I am not a GNAT expert, so some of my concepts may be wrong.
: Ada ( C) . , . :
procedure Outer is
Some_Variable : Integer;
procedure Inner is
begin
...
Some_Variable := Some_Variable + 1;
...
, , Inner Outer , Some_Variable, Outer Inner, Outer , Inner. - Inner, " ", Outer . Inner Some_Variable.
, Inner'Access, access procedure. Inner access procedure. prodcedure. 'Access, Outer - Outer, - , Outer . GNAT Ada 'Unrestricted_Access, , Outer , Inner. , , , , .
, , Inner'Access Inner, Inner . , , ?
(Irvine Compiler , , ) , - ( access procedure " ", ). ( ). [ Irvine Compiler , , .] , , C ( Ada, C, gtk). C , , .
GNAT , , , . , Inner'Unrestricted_Access', ( "" ) . Inner ( ). , , . , C , , Inner.
, .
: GNAT . , , - GNAT. [ .] , , , , , , . , , Windows , , , .