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 est définie par une portion du code source. Au sein de cette portion, l'identifiant n'a qu'une seule liaison. Un identifiant à portée globale est lié dans l'ensemble du code source (parfois seulement après sa déclaration ou sa définition). Dans de nombreux langages de programmation, toutes les fonctions ont une portée globale (exemple : C). Lorsqu'un identifiant à portée globale désigne une variable, on parle alors de variable globale. Celles-ci servent typiquement à stocker des données utiles à de multiples endroits du programme, un cas particulier étant les verrous. Un identifiant à portée locale n'est lié qu'au sein d'une construction syntaxique du langage, généralement celle où il est déclaré. Lorsqu'un identifiant à portée locale désigne une variable, on parle alors de variable locale. De plus, dans la plupart des langages, un identifiant à portée locale masque tout éventuel identifiant de même nom, mais de plus grande portée. Déclarer deux fois le même identifiant dans la même portée peut être considéré comme une erreur ou comme une redéclaration, selon le langage et le contexte. Exemple en Scheme : REPL> (define foo 42) ; la variable globale foo contient la valeur 42 REPL> foo ; accès à la variable foo 42 REPL> (let ((foo -1)) ; ouverture d'une forme let où est définie une variable locale foo qui contient la valeur -1 foo) ; fin de la forme let, qui renvoie la valeur de la variable foo 1 REPL> foo ; accès à la variable foo 42 Le principe de portée lexicale a été introduit pour la première fois dans LISP 1.5. Il fut ajouté à Algol 60, dont les descendants sont typiquement à portées uniquement 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, importées de Scheme, et de portées dynamiques.

À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Cours associés (24)
CS-119(c): Information, Computation, Communication
L'objectif de ce cours est d'introduire les étudiants à la pensée algorithmique, de les familiariser avec les fondamentaux de l'Informatique et de développer une première compétence en programmation (
CS-550: Formal verification
We introduce formal verification as an approach for developing highly reliable systems. Formal verification finds proofs that computer systems work under all relevant scenarios. We will learn how to u
CS-320: Computer language processing
We teach the fundamental aspects of analyzing and interpreting computer languages, including the techniques to build compilers. You will build a working compiler from an elegant functional language in
Afficher plus
Séances de cours associées (57)
Programmes de vérification avec l'inox: Partie 2
Se concentre sur l'utilisation d'Inox pour la vérification des programmes, en démontrant le processus de vérification des programmes et en assurant l'exactitude.
Blocs et portées lexicales
Explore les fonctions imbriquées, les blocs, les règles de visibilité et la portée lexicale dans Scala.
Structures de données: Tuples, Sets, Dictionnaires
Explore les tuples, les ensembles et les dictionnaires en Python, couvrant l'immutabilité, l'unicité et les paires de valeurs clés.
Afficher plus
Publications associées (36)

Mos përmendi njeri fjalën shesh? [Did Someone Say Piazza?]

Marson Korbi

This article discusses the history of Skanderbeg Square and the renovation projects made in the city of Tirana by foreign architects. Written in Albanian, it offers a critical reading of the effects of these projects in the declared scope of the government ...
2024

An Iterative Adaptive Dynamic Programming Approach for Macroscopic Fundamental Diagram-Based Perimeter Control and Route Guidance

Nikolaos Geroliminis, Can Chen

Macroscopic fundamental diagrams (MFDs) have been widely adopted to model the traffic flow of large-scale urban networks. Coupling perimeter control and regional route guidance (PCRG) is a promising strategy to decrease congestion heterogeneity and reduce ...
Informs2024

Creating Trust by Abolishing Hierarchies

Mathias Josef Payer, Edouard Bugnion, Evangelos Marios Kogias, Adrien Ghosn, Charly Nicolas Lucien Castes, Neelu Shivprakash Kalani, Yuchen Qian

Software is going through a trust crisis. Privileged code is no longer trusted and processes insufficiently protect user code from unverified libraries. While usually treated separately, confidential computing and program compartmentalization are both symp ...
Association for Computing Machinery2023
Afficher plus
Concepts associés (45)
Transparence référentielle
La transparence référentielle est une propriété des expressions d'un langage de programmation qui fait qu'une expression peut être remplacée par sa valeur sans changer le comportement du programme. Une expression est référentiellement transparente si elle peut être remplacée par sa valeur sans changer le comportement du programme (c'est-à-dire que le programme a les mêmes effets et les mêmes sorties pour les mêmes entrées, quel que soit son contexte d'exécution).
Programmation orientée objet
La programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique. Elle consiste en la définition et l'interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Il possède une structure interne et un comportement, et il sait interagir avec ses pairs.
Scheme
Scheme (prononciation : ) est un langage de programmation dérivé du langage fonctionnel Lisp, créé dans les années 1970 au Massachusetts Institute of Technology (MIT) par Gerald Jay Sussman et Guy L. Steele. Le but des créateurs du langage était d'épurer le Lisp en conservant les aspects essentiels, la flexibilité et la puissance expressive. Scheme a donc une syntaxe extrêmement simple, avec un nombre très limité de mots-clés. Comme en Lisp, la notation préfixée permet de s'affranchir d'une précédence des opérateurs.
Afficher plus
MOOCs associés (2)
Cement Chemistry and Sustainable Cementitious Materials
Learn the basics of cement chemistry and laboratory best practices for assessment of its key properties.
Initiation à la Programmation en C++
Ce cours initie à la programmation en utilisant le langage C++. Il ne présuppose pas de connaissance préalable. Les aspects plus avancés (programmation orientée objet) sont donnés dans un cours suivan

Graph Chatbot

Chattez avec Graph Search

Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.

AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.