next up previous contents
Next: Portée des déclarations Up: Les fonctions Previous: Exécution d'un appel

Liaisons locales à un sous-programme

Un sous-programme est déclaré au meme moment que les autres identificateurs. Par exemple:

procedure exemple is
   un : constant integer := 1;
   x, y : integer := 1;
   function succeseur(x:integer) return integer is
       z : integer := x;
   begin
       z := z +1;
       return(z);
   end succeseur;
begin
   y := x + succeseur(3);
end exemple;

Ce programme déclare deux variables x,y, une constante un et une fonction succeseur. Les actions entourées par les begin ...end de la procédure exemple sont appelées programme principal par oppostions aux actions des sous-programmes (ici, entourées par begin, end succeseur).

De même qu'un programme déclare des identificateurs (dont des sous-programmes), un sous-programme peut aussi déclarer une grande variété d'identificateurs: variables, constantes, sous-programmes, et d'autres encore. Ces identificateurs sont alors dit locaux au sous-programme.

Il y a deux sortes d'identificateurs locaux à un sous-programme: les paramètres formels et les identificateurs déclarés à l'intérieur du sous-programme. Dans la procédure exemple, la fonction succeseur déclare un paramètre formel x: integer et une variable locale z : integer. Tous deux sont locaux à la fonction.

Un identificateur local à un sous-programme ne peut être utilisé qu'à l'intérieur de celui-ci. Par opposition, les identificateurs globaux sont déclarés par le programme principal et sont utilisables dans tout le programme, y compris à l'intérieur des sous-programmes. Dans la procédure exemple les identificateurs x, y et un sont globaux.

L'identificateur x est déclaré à deux endroits: dans le programme principal, et comme paramètre de la fonction successeur. Il est donc à la fois global et local. Dans ce contexte, comment donner sens à une utilisation de x à un endroit donné du programme? De manière générale, le sens donné aux identificateurs dépend de l'endroit où ils ont étés déclarés, mais il dépend aussi de la portée et de la visibilitée de leurs déclarations.


next up previous contents
Next: Portée des déclarations Up: Les fonctions Previous: Exécution d'un appel
Maria-Viginia Aponte
2001-11-21