Section courante

A propos

Section administrative du site

Blocs, localité et étendue

Un bloc est composé de déclarations, étant écrites et combinées dans n'importe quel ordre, et d'instructions. Chaque bloc fait partie d'une déclaration de procédure, d'une déclaration de fonction, d'une déclaration de méthode ou d'un programme ou d'une unité. Tous les identificateurs et étiquettes déclarés dans la partie déclaration sont locaux au bloc.

Blocs

La syntaxe globale de tout bloc suit ce format :

Les étiquettes marquant des instructions dans la partie d'instruction correspondante sont déclarées dans la partie de déclaration d'étiquette. Chaque étiquette ne doit marquer qu'une seule déclaration.

Une étiquette doit être un identificateur ou une séquence de chiffres compris entre 0 et 9999. La partie déclaration constante consiste en des déclarations constantes locales au bloc.

La partie déclaration de type inclut toutes les déclarations de type locales au bloc.

La partie déclaration de variables est composée de déclarations de variables locales au bloc.

La partie déclaration de procédure et de fonction est constituée de déclarations de procédure et de fonction locales au bloc.

La partie instruction définit les instructions ou actions algorithmiques à exécuter par le bloc.

Règles de portée

La présence d'un identificateur ou d'une étiquette dans une déclaration définit l'identificateur ou l'étiquette. Chaque fois que l'identificateur ou l'étiquette se reproduit, il doit être dans le champ d'application de cette déclaration.

Portée du bloc

La portée d'un identificateur ou d'une étiquette déclarée dans une déclaration d'étiquette, de constante, de type, de variable, de procédure ou de fonction s'étend du point de déclaration à la fin du bloc actuel et inclut tous les blocs contenus dans le bloc actuel.

Un identificateur ou une étiquette déclaré dans un bloc externe peut être redéclaré dans un bloc interne entouré par le bloc externe. Avant le point de déclaration dans le bloc intérieur et après la fin du bloc intérieur, l'identificateur ou l'étiquette représente l'entité déclarée dans le bloc extérieur.

  1. Program Outer;        { Début de la portée extérieure }
  2.  
  3. Type
  4.  I=Integer;           { Définir I comme type Integer }
  5.  
  6. Var
  7.  T:I;                 { Définir T comme variable entière }
  8.  
  9. Procedure Inner;      { Début de la portée intérieure }
  10. Type
  11.  T=I;                 { Redéfinir T comme type Integer }
  12. Var
  13.  I:T;                 { Redéfinir I en tant que variable entière }
  14. Begin
  15.  I:=1;
  16. End;                  { Fin de la portée intérieure }
  17.  
  18. BEGIN
  19.  T:=1;                { Fin de la portée extérieure }
  20. END.

Portée de l'enregistrement (RECORD)

La portée d'un identificateur de champ déclaré dans une définition de type d'enregistrement (RECORD) s'étend du point de déclaration à la fin de la définition de type d'enregistrement. De plus, la portée des identificateurs de champ comprend des désignateurs de champ et des instructions opérant sur des références de variables du type d'enregistrement donné.

Portée de l'objet

La portée d'un identificateur de composante déclaré dans une définition de type d'objet s'étend du point de déclaration à la fin de la définition de type d'objet et s'étend à tous les descendants du type d'objet et aux blocs de toutes les déclarations de méthode du type d'objet. La portée des identificateurs de composantes comprend des désignateurs de champ et des instructions opérant sur des références variables du type d'objet donné.

Portée d'un unité

La portée des identificateurs déclarés dans la section interface d'une unité suit les règles de la portée des blocs et s'étend sur tous les clients de l'unité. En d'autres termes, les programmes ou les unités contenant des clauses USES ont accès aux identificateurs appartenant aux parties d'interface des unités dans ces clauses USES.

Chaque unité dans une clause USES impose une nouvelle portée englobant les unités restantes utilisées et le programme ou l'unité contenant la clause USES. La première unité dans une clause USES représente la portée la plus externe et la dernière unité représente la portée la plus interne. Cela implique que si deux unités ou plus déclarent le même identificateur, une référence non qualifiée à l'identificateur sélectionne l'instance déclarée par la dernière unité dans la clause USES. Mais en écrivant un identificateur qualifié (un identificateur d'unité, suivi d'un point, suivi de l'identificateur), chaque instance de l'identificateur peut être sélectionnée.

Les identificateurs des constantes, types, variables, procédures et fonctions prédéfinis de Turbo Pascal agissent comme s'ils étaient déclarés dans un bloc renfermant toutes les unités utilisées et l'ensemble du programme. En fait, ces objets standard sont définis dans une unité appelée System, étant utilisée par n'importe quel programme ou unité avant les unités nommées dans la clause USES. Cela signifie que n'importe quelle unité ou programme peut redéclarer les identificateurs standard, mais une référence spécifique peut toujours être faite via un identifiant qualifié, par exemple, System.Integer ou System.Writeln.



Dernière mise à jour : Samedi, le 1er janvier 2022