* Agence Prestashop Besancon
Agence Prestashop Besancon
Article:
La portée (scope en anglais) relative à un identifiant en informatique indique l'étendue dans laquelle cet identifiant est lié. Elle peut être lexicale ou dynamique. Une portée lexicale est indiqué par une partie du code source. Dans cette partie, l'identifiant n'a qu'une unique relation. Un identifiant à portée globale est associé dans la globalité du code source (parfois juste après sa déclaration ou sa détermination). Dans plusieurs langages de programmation, toutes les fonctions ont une portée globale (exemple : C). Quand un identifiant à portée globale indique une variable, on parle donc de variable globale. Celles-ci permettent spécifiquement d'enregistrer des données indispensables à de multiples endroit du programme, un cas spécial étant les verrous. Un identifiant à portée locale n'est associé que dans une composition syntaxique du langage, habituellement celle où il est nommé. Quand un identifiant à portée locale signifie une variable, on parle alors de variable locale. De même, dans la généralité des langages, un identifiant à portée locale dissimule tout possible identifiant de même nom, mais de plus grande portée. Nommer deux fois le même identifiant dans la même portée peut être tenu comme une erreur, ou comme une redéclaration, suivant le langage et le contexte. Le système de portée lexicale a été inséré pour la première fois dans LISP 1.5. Il fut ajouté à Algol 60, dont les dérivants sont spécialement à portées purement 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, possède à la fois de portées lexicales, importées de Scheme, et de portées dynamiques. Une portée dynamique est déterminé dans une étendue dynamique bornée par un point d'entrée et un point de sortie lors de l'exécution. La relation d'un identifiant à portée dynamique cache une relation antérieure au sein de l'étendue dynamique de la forme qui accomplit cette récente relation .Une variable à portée dynamique, nommée variable dynamique, permet donc de propager dans la pile d'appels un changement à un environnement. Des langages non fonctionnels supportent également une portée dynamique, particulièrement ceux dérivés de Forth (un langage à pile) dont PostScript. La technique employée est d'utiliser une seconde pile (indépendante de la pile des paramètres ou de la pile de retour des fonctions, les deux piles étant souvent communes) contenant pour chaque position 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 se poursuit dans le (ou les) dictionnaires plus bas dans la pile.