Espace de noms (programmation)


Espace de noms (programmation)

Espace de noms (programmation)

Page d'aide sur l'homonymie 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 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.

Common 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 Microsoft .NET, voir entre autres Base Class 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 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 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 de variable locale qui permettent l'implémentation d'algorithmes récursifs. Cette notion est appelée la fermeture d'un identificateur, on parle aussi de visibilité ou de portée.

De nombreux langages permettent un contrôle plus complexe des fermetures: les variables globales sont visibles dans l'ensemble du programme, on peut également trouver des variables qui sont limitées au fichier 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, utilisée dans un langage comme le C et la portée dynamique utilisée par exemple en Perl.

  • Portail de la programmation informatique Portail de la programmation informatique
Ce document provient de « Espace de noms (programmation) ».

Wikimedia Foundation. 2010.

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

Regardez d'autres dictionnaires:

  • 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 — Pour une explication plus détaillée sur l utilisation du terme dans Wikipédia, voir Aide:Espace de noms. Un espace de noms (namespace) est un ensemble de ce qui est désignable dans un contexte donné par une méthode d accès donnée faisant usage de …   Wikipédia en Français

  • Espace de noms — Pour une explication plus détaillée sur l utilisation du terme dans Wikipédia, voir Aide:Espace de noms. Le terme espace de noms (namespace) désigne en informatique un lieu abstrait conçu pour accueillir des ensembles de termes appartenant à un… …   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

  • Espace de nom — Espace de noms Pour une explication plus détaillée sur l utilisation du terme dans Wikipédia, voir Aide:Espace de noms. Un espace de noms (namespace) est un ensemble de ce qui est désignable dans un contexte donné par une méthode d accès donnée… …   Wikipédia en Français

  • Espace de nommage — Espace de noms Pour une explication plus détaillée sur l utilisation du terme dans Wikipédia, voir Aide:Espace de noms. Un espace de noms (namespace) est un ensemble de ce qui est désignable dans un contexte donné par une méthode d accès donnée… …   Wikipédia en Français

  • Programmation par intention — Traduction à relire Intentional programming → …   Wikipédia en Français

  • Programmation neuro-linguistique — Pour les articles homonymes, voir PNL. Les techniques issues de la modélisation sont variées. Leurs usages coordonnés et intégrés permettent d explorer le « vécu subjectif », objet de la PNL …   Wikipédia en Français

  • Espaces de noms — Espace de noms Pour une explication plus détaillée sur l utilisation du terme dans Wikipédia, voir Aide:Espace de noms. Un espace de noms (namespace) est un ensemble de ce qui est désignable dans un contexte donné par une méthode d accès donnée… …   Wikipédia en Français

  • Convention De Nommage (Programmation) — Une convention de nommage dans la programmation informatique est un ensemble de règles destinées à choisir la séquence de caractères à utiliser pour les identifiants dans le code source et la documentation. Les raisons pour lesquelles on utilise… …   Wikipédia en Français