* Integrateur Drupal Besancon
Integrateur Drupal Besancon
Article:
Dans le domaine informatique, la portée (scope en anglais) se rapportant à un identifiant signale l'étendue au sein de laquelle cet identifiant est allié. Elle peut être lexicale ou dynamique. Une part du code source définie la portée lexicale. Au sein de cette part ,l'identifiant n'a qu'un seule liaison. Un identifiant à portée globale est aligné au sein de l'intégrité du code source (parfois seulement à la suite de sa déclaration ou son identification). Dans de nombreux langages de programmation, la totalité des fonctions ont une portée globale (exemple : C). Lorsqu'un identifiant à portée globale souligne une variable, on parle dans ce cas de variable globale. Celles-ci s'occupent précisément d'enregistrer des données utiles à de multiples lieu du programme, un cas typique étant les verrous. Un identifiant à portée locale n'est rattaché que dans une structure syntaxique du langage, couramment celle où il est signalé. Lorsqu'un identifiant à portée locale affecte une variable, on parle alors de variable locale. Encore, dans la majorité des langages, un identifiant à portée locale camoufle tout potentiel identifiant de nom identique, mais de plus grande portée. Notifier deux fois le même identifiant dans la même portée peut être observé comme une erreur, ou comme une redéclaration, suivant le langage et le contexte. La règle de portée lexicale a été engagée pour la première fois dans LISP 1.5. Elle fut additionnée à Algol 60, dont les émanants sont typiquement à portées puremant lexicales (C, Pascal). Scheme, qui en fut un promoteur, est un dialecte Lisp qui n'a également de portées que lexicales. Common Lisp, lui, dispose à la fois de portées lexicales, introduites de Scheme, et de portées dynamiques. Au sein d'une étendue dynamique délimitée une portée dynamique est définie par un point d'entrée et un point de sortie lors de l'exécution. Le lien d'un identifiant à portée dynamique cache un lien antécédente dans l'étendue dynamique de la forme qui concrétise ce nouveau lien. Une variable à portée dynamique, appellée variable dynamique, permet donc d'aner au sein de la pile d'appels une modification à un environnement. Des langages non fonctionnels tolèrent également une portée dynamique, notamment ceux issus de Forth (un langage à pile) dont PostScript. La démarche employée est d'utiliser une seconde pile (autonome de la pile des paramètres ou de la pile de retour des fonctions, les deux piles étant toujours communes) comportant pour toute place empilée une référence à un dictionnaire de variables. Si une variable ne peut être trouvée dans le premier dictionnaire référencé au sommet de la pile, la recherche continue dans le (ou les) dictionnaires plus bas dans la pile.