Espace de noms (programmation) - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs est disponible ici.

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 noms regroupant des fonctions mathématiques et au péché (le mot anglais sin en est une traduction) dans un autre espace de nom traitant de problèmes religieux. Cela évite les inévitables conflits entre symboles synonymes.

Espaces de noms explicites

De nombreux langages offrent un espace de nom commun pour les identificateurs de variables, de fonctions et d'opérateurs spéciaux et n'offrent pas la possibilité de manipuler (utiliser, créer) de nouveaux espaces de noms. Des conventions sur les noms des identifiants doivent alors être adoptées par les programmeurs.

Certains langages offrent les espaces de nom (namespaces de C++, packages de Java ou modules de Python) au programmeur (En informatique, un développeur (ou programmeur) est un informaticien qui réalise du logiciel en...).

Common Lisp (Common Lisp est un langage fonctionnel impur de la famille Lisp.) fournit des packages, qui sont des collections de symboles, en plus de la dizaine d'espaces de noms fournis en standard par le langage.

Pour l'espace de noms dans .NET de Microsoft (Microsoft Corporation (NASDAQ : MSFT) est une multinationale américaine de solutions...), voir entre autres Base Class (CLASS (CLS) est un célèbre groupe de l'underground informatique. CLASS a cessé son...) Library#Espace de noms, (en) Framework Class Library

Espaces de noms implicites

Dans certains cas, la grammaire du langage permet de définir des espaces de noms implicites. Par exemple dans le langage C (Le C++ est un langage de programmation permettant la programmation sous de multiples paradigmes...), le code suivant est valide :

struct adress {
int         number;
const char* road;
};
struct phone {
const char*  number;
const char*  prefix;
};
struct adress  myadress;
struct phone   myphone;
myadress.number = 23;
myphone.number  = "67 45 00 23";

Le compilateur (Un compilateur est un programme informatique qui traduit un langage, le langage source, en un...) possède en effet suffisamment d'informations pour résoudre l'homonymie du symbole number.

Espaces de noms locaux

Les langages de programmations modernes créent un espace de nom dédié pour chaque appel de fonction. Ils supportent donc l'usage (L’usage est l'action de se servir de quelque chose.) de variable (En mathématiques et en logique, une variable est représentée par un symbole. Elle...) locale qui permettent l'implémentation (Le mot implantation peut avoir plusieurs significations :) d'algorithmes récursifs. Cette notion est appelée la fermeture (Le terme fermeture renvoie à :) d'un identificateur (En programmation informatique, les identificateurs sont des mots qui sont reconnus par le...), on parle aussi de visibilité (En météorologie, la visibilité est la distance à laquelle il est possible de...) ou de portée.

De nombreux langages permettent un contrôle (Le mot contrôle peut avoir plusieurs sens. Il peut être employé comme synonyme d'examen, de...) plus complexe des fermetures: les variables globales sont visibles dans l'ensemble (En théorie des ensembles, un ensemble désigne intuitivement une collection...) du programme, on peut également trouver des variables qui sont limitées au fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un...) courant ou à un bloc arbitraire (par exemple en C à l'aide des symboles accolades ).

La méthode utilisée pour résoudre les problèmes d'homonymie parmi les différents espaces de nom revient à ordonner ces différents espaces de noms locaux pour choisir le premier qui contient le symbole recherché. On distingue généralement deux grandes méthodes de classement: la portée lexicale (En informatique, la portée lexicale (dite également portée statique), est une méthode pour...), utilisée dans un langage comme le C et la portée dynamique (Le mot dynamique est souvent employé désigner ou qualifier ce qui est relatif au mouvement. Il...) utilisée par exemple en Perl.

Page générée en 0.035 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise