Portée lexicale

Portée lexicale

En informatique, la portée lexicale (dite également portée statique), est une méthode pour déterminer la portée d'une variable en fonction de sa position dans le code.

Une variable est dite lexicale si sa portée est définie par le texte du programme. Par exemple, une variable nommée balance :

(defun solde (balance)
        ...
        (lambda (foo bar) 
            (+ (* foo balance) bar))
        ...)

Cette variable est définie dans la portée de la fonction solde, à partir de la liste des paramètres, et jusqu'à la fin de la définition de la fonction. La fermeture lexicale (dénotée par l'expression lambda) utilise la définition lexicale de balance de la fonction solde : c'est une capture de variable lexicale ; la variable ainsi capturée a la durée de vie de la fonction qui la capture, qui peut excéder la durée d'un appel à solde ; mais la portée de cette capture est strictement limitée par le texte de la fermeture.

Elle est garantie ne pas interférer avec une autre variable de même nom qui serait définie dans un fragment de code du programme hors de la fonction solde, ou encore avec la variable nommée balance dans d'autres appels de la même fonction. Cela assure au programmeur que les variables privées ne sont pas accidentellement accédées ou modifiées par d'autres fonctions. Cela est considéré comme une amélioration considérable par rapport à la combinaison de portée globale et portée dynamique plus anciennes.

La portée lexicale fut d'abord introduite par le langage Algol, puis utilisée par d'autres langages depuis. Certains langages ont introduit la portée lexicale dans leurs incarnations les plus modernes, comme Perl. D'autres offrent les variables dynamiques et lexicales, par choix (Common Lisp) ou par le fait d'une évolution progressive (Emacs Lisp, avec lexical-let).

Voir également


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Portée lexicale de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Portee lexicale — Portée lexicale En informatique, la portée lexicale (dite également portée statique), est une méthode pour déterminer la portée d une variable en fonction de sa position dans le code. Une variable est dite lexicale si sa portée est définie par le …   Wikipédia en Français

  • Portee (informatique) — Portée (informatique) Pour les articles homonymes, voir Portée. En informatique, la portée (scope en anglais) d un identifiant est l étendue au sein de laquelle cet identifiant est lié. Cette portée peut être lexicale ou dynamique. Portée… …   Wikipédia en Français

  • Portee dynamique (informatique) — Portée dynamique (informatique) Pour les articles homonymes, voir Portée dynamique. Une variable est caractérisée par sa portée et sa durée. Une variable dynamique a une portée globale et une durée liée à son point d’établissement dans le… …   Wikipédia en Français

  • Portée (informatique) — Pour les articles homonymes, voir Portée. En informatique, la portée (scope en anglais) d un identifiant est l étendue au sein de laquelle cet identifiant est lié. Cette portée peut être lexicale ou dynamique. Portée lexicale Une portée lexicale… …   Wikipédia en Français

  • Portée dynamique (informatique) — Pour les articles homonymes, voir Portée dynamique. Une variable est caractérisée par sa portée et sa durée. Une variable dynamique a une portée globale et une durée liée à son point d’établissement dans le programme (la position de sa création,… …   Wikipédia en Français

  • JavaScript —  Ne doit pas être confondu avec Java (langage). JavaScript …   Wikipédia en Français

  • Common Lisp — est un langage fonctionnel impur de la famille Lisp. Sommaire 1 Introduction 2 Syntaxe 3 Types de données 3.1 Types scalaires …   Wikipédia en Français

  • Espace De Noms (Programmation) —  Ne doit pas être confondu avec Espace de noms. En programmation, les espaces de noms aident à la construction de programmes modulaires. Par exemple, le symbole de fonction sin pourrait renvoyer au calcul d une sinusoïde dans un espace de… …   Wikipédia en Français

  • Espace de noms (programmation) —  Ne doit pas être confondu avec Espace de noms. En programmation, les espaces de noms aident à la construction de programmes modulaires. Par exemple, le symbole de fonction sin pourrait renvoyer au calcul d une sinusoïde dans un espace de… …   Wikipédia en Français

  • Espace de noms (informatique) —  Ne doit pas être confondu avec Espace de noms. En programmation, les espaces de noms aident à la construction de programmes modulaires. Par exemple, le symbole de fonction sin pourrait renvoyer au calcul d une sinusoïde dans un espace de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”