Share to: share facebook share twitter share wa share telegram print page

Espace de noms (programmation)

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 préserve des inévitables conflits entre symboles homonymes.

Espaces de noms explicites

Absence de possibilité de manipuler les espaces de nommage

De nombreux langages offrent un espace de nom commun pour les identifiants 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.


Par exemple, l'API C de GTK+ est orientée objet, bien que le C ne soit pas un langage orienté objet. Pour parvenir à ce résultat, les noms des fonctions de GTK suivent une convention de nommage. En voici un échantillon[1]:

void        gtk_window_set_destroy_with_parent  (GtkWindow *window, gboolean setting);
void        gtk_container_add                   (GtkContainer *container, GtkWidget *widget);
void        gtk_container_add_with_properties   (GtkContainer *container, GtkWidget *widget, const gchar *first_prop_name, ...);
void        gtk_widget_show                     (GtkWidget *widget);
void        gtk_widget_show_now                 (GtkWidget *widget);
void        gtk_widget_show_all                 (GtkWidget *widget);

Le nom d'une fonction se décompose comme suit :

  1. Le premier terme, désigne la bibliothèque à laquelle la fonction appartient (ex: gtk)
  2. le deuxième terme, désigne la classe des objets sur lequel la fonction peut agir (ex: window, signal, widget, etc.)
  3. Le troisième terme est un verbe d'action qui décrit l'opération effectuée (ex: set, add, show, etc.)
  4. Enfin, d'autres termes peuvent être ajoutés optionnellement pour mieux spécifier ce que fait la fonction.

L'inconvénient principal est que les noms de fonctions peuvent devenir très longs. C'est pourquoi certains langages offrent des espaces de nommage permettant au développeur d'éviter les collisions de noms facilement et permettent donc d'utiliser des noms de fonctions plus courts.

Manipulation des espaces de nommage

Certains langages offrent les espaces de nom au programmeur. Ils s'appellent: namespace pour le C++ et Microsoft .NET, package pour Java et Common Lisp ou module pour Python ou encore OCaml.

Common Lisp fournit également des packages, qui sont des collections de symboles, en plus de la dizaine d'espaces de noms fournis en standard par le langage.

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 address {
    int         number;
    const char* road;
};

struct phone {
    const char*  number;
    const char*  prefix;
};

struct address  myaddress;
struct phone   myphone;

myaddress.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 programmation 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 identifiant, 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.

Voir aussi

Article connexe

Références

Read more information:

Израильско-суданский мирный договор — договор о нормализации отношений между Израилем и Суданом, о заключении которого объявил президент США Дональд Трамп 23 октября 2020 года[1]. Судан стал пятой арабской страной, заключившей мирный договор с Израилем (после Египта,

伏見宮邦永親王 伏見宮続柄 伏見宮貞致親王第3王子 崇光天皇10世皇孫称号 得解脱院身位 親王敬称 殿下出生 延宝4年3月28日(1676年5月10日)死去 享保11年10月21日(1726年11月14日)配偶者 福子内親王(霊元天皇の第五皇女)子女 貞建親王道承入道親王尊祐法親王光子女王輔子女王培子女王父親 伏見宮貞致親王母親 家女房役職 中務卿サイン テンプレートを表示伏見宮邦永親王(ふ

Mexico City metro station For the upcoming Santiago Metro station, see Santiago Metro Line 2. ObservatorioSTC rapid transitPlatforms at Observatorio stationGeneral informationLocationCalzada Minas de ArenaÁlvaro ObregónMexico CityMexicoCoordinates19°23′54″N 99°12′01″W / 19.398237°N 99.200363°W / 19.398237; -99.200363Operated bySistema de Transporte Colectivo (STC)Line(s) (Observatorio - Pantitlán) (Observatorio - Tláhuac)Platforms 2 side platformsTracks 2C…

Joseph Armstrong Información personalNacimiento 21 de septiembre de 1816 Bewcastle (Reino Unido) Fallecimiento 5 de junio de 1877 (60 años)Matlock Bath (Reino Unido) Nacionalidad BritánicaInformación profesionalOcupación Ingeniero Empleador Great Western Railway [editar datos en Wikidata] Joseph Armstrong (21 de septiembre de 1816 - 5 de junio de 1877) fue un ingeniero mecánico británico, superintendente de locomotoras del Great Western Railway. Su hermano menor George y uno de …

Jim Cuddy 2005 auf der Spencerville Fair Bühne Jim Cuddy (amtlich James G. Cuddy, * 2. Dezember 1955 in Toronto, Ontario) ist ein kanadischer Singer-Songwriter, der vor allem mit der Alternative Countryrock-Band Blue Rodeo bekannt wurde. Über die Jahre hat er zudem mit der Jim Cuddy Band bis 2018 vier Soloalben herausgebracht. Inhaltsverzeichnis 1 Leben 1.1 Alben 1.2 Singles 1.3 Musikvideos 2 Weblinks 3 Quellen Leben Cuddy wuchs in einer umzugsfreudigen Familie in Montreal sowie Brantford, Ont…

2022 film by Thomas Hardiman This article needs a plot summary. Please add one in your own words. (January 2023) (Learn how and when to remove this template message) Medusa DeluxeTheatrical release posterDirected byThomas HardimanWritten byThomas HardimanProduced byMichael ElliottLee GroombridgeLouise Palmkvist HansenStarring Anita-Joy Uwajeh Clare Perkins Darrell D'Silva Debris Stevenson Harriet Webb Heider Ali Kae Alexander Kayla Meikle Lilit Lesser Luke Pasqualino Nicholas Karimi Cinematograp…

Ketama Antonio Carmona, cantante de KetamaDatos generalesOrigen Madrid, EspañaInformación artísticaGénero(s) Nuevo flamencoPeríodo de actividad 1984 – 2004, 2018 - PresenteDiscográfica(s) Nuevos Medios, Polygram, Universal, MercuryMiembros Antonio Carmona Amaya José Miguel Carmona Niño (Josemi) Juan José Carmona Amaya (El Camborio)Exmiembros José Soto Barea (Sorderita) Ray Heredia † (1963-1991)[editar datos en Wikidata] Ketama es un grupo musical gitano español…

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Rail transport in Bolivia – news · newspapers · books · scholar · JSTOR (February 2012) (Learn how and when to remove this template message) This article's lead section may be too short to adequately summarize the key points. Please consider expanding the lead to …

Kasteel van Berlare in juli 2012 Voorplein met in de achtergrond het kasteel. Er staan twee ongeveer gelijke, parallelle dienstgebouwen in rococostijl aan beide kanten van het voorplein. Het Kasteel van Berlare is een kasteel in de Belgische gemeente Berlare. Het huidige bouwwerk dateert uit de 18e eeuw en werd in opdracht van Aloysius vanden Meersche, de toenmalige heer van Berlare, gebouwd. Het kasteel wordt omgeven door een grote tuin in landschappelijke stijl met dreven, een bos en vijverpar…

For other uses, see Automation (disambiguation). Automotive business simulation video game 2015 video gameAutomationDeveloper(s)Camshaft SoftwarePublisher(s)Camshaft SoftwareDesigner(s)Robert HoischenProgrammer(s)Caswal Parker, Jayelinda Suridge, Isaac BlomfieldArtist(s)Andrew Lamb, Hannah Grace, Casey Frost, Mathew ChildComposer(s)Michael TrottEngineUnreal Engine 4 (originally Kee Engine)Platform(s)Microsoft WindowsReleaseWW: 12 March 2015 (Early access)Genre(s)SimulationMode(s)Single-player…

Belle Gunness im Jahr 1904 Belle Gunness (* 11. November 1859 in Selbu, Norwegen als Brynhild Paulsdatter Størset; † vermutlich 28. April 1908 in La Porte, Indiana) war eine norwegisch-US-amerikanische Serienmörderin. Die Zahl der Opfer der „Schwarzen Witwe“ liegt zwischen 20 und 40.[1] Inhaltsverzeichnis 1 Leben 1.1 Frühe Jahre und erste Ehe 1.2 Umzug nach La Porte und zweite Ehe 1.3 Der Hausbrand 1.4 Esther Carlson 2 Exhumierung 2008 und Gedenken an die Opfer 3 Rezeption 4 Web…

Painting by Marcel Duchamp Nude Descending a Staircase, No. 2French: Nu descendant un escalier n° 2ArtistMarcel DuchampYear1912MediumOil on canvasDimensions147 cm × 89.2 cm (57+7⁄8 in × 35+1⁄8 in)LocationPhiladelphia Museum of Art, Philadelphia Nude Descending a Staircase, No. 2 (French: Nu descendant un escalier n° 2) is a 1912 painting by Marcel Duchamp. The work is widely regarded as a Modernist classic and has become one of the most f…

World's first automobile race For the cycle race, see Paris–Rouen (cycle race). Horseless Carriages ContestVenueRoad from Paris to RouenLocationFranceCorporate sponsorLe Petit JournalPierre GiffardFirst race22 July 1894 (unique race)102 entrants21 qualified4 stoppedDistance126 kilometres (78 mi) Jules-Albert de Dion finished first in a steam powered De Dion tractor towing a caléche carriage, but was not eligible for the prize. Among the passengers are de Dion, Étienne van Zuylen van Nye…

2011 Philippine television series Sinner or SaintTitle cardGenreCrime dramaCreated byRJ NuevasWritten by RJ Nuevas Vienuell Directed byDon Michael Perez[1]Creative directorJun LanaStarring Dennis Trillo Bianca King Alessandra De Rossi Polo Ravales Country of originPhilippinesOriginal languageTagalogNo. of episodes84ProductionExecutive producers Mona Coles-Mayuga Joy Lumboy-Pili Camera setupMultiple-camera setupRunning time30-45 minutesProduction companyGMA Entertainment TVOriginal releas…

Jaws of Death redirects here. For the 2005 film, see Jaws of Death (film). For the 1999 Primal Fear album, see Jaws of Death (album). This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources: Balsac the Jaws of Death – news ·…

Hotel and casino in Atlantic City, New Jersey Harrah's Resort Atlantic CityView of Harrah's Resort from Borgata. Location Atlantic City, New Jersey Address 777 Harrah's BoulevardAtlantic City, New JerseyOpening dateNovember 22, 1980; 43 years ago (November 22, 1980)ThemeMarinaWaterfrontNo. of rooms2,587[1]Total gaming space160,000 sq ft (15,000 m2)[2]Permanent showsDJ Smooth – Saturdays After DarkSignature attractionsThe Pool at Harrah'sThe Waterfron…

Romance book series by Sherrilyn Kenyon This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: The League series – news · newspapers · books · scholar · JSTOR (April 2010) (Learn how and when to remove this temp…

Классификация по Флинну   Одиночный поток команд (single instruction) Множество потоков команд (multiple instruction) Одиночный поток данных (single data) SISD (ОКОД) MISD (МКОД) Множество потоков данных (multiple data) SIMD (ОКМД) MIMD (МКМД) MISD-Архитектура (англ. Multiple Instruction stream, Single Data stream, Множественный поток…

Smuggler’s Run Обложка игры Разработчики Angel Studios Rebellion (GBA) Издатели Rockstar Games Syscom Destination Software (GBA) Zoo Digital (GBA) Часть серии Smuggler’s Run Дата анонса 15 февраля 2000[1] Даты выпуска 26 октября 2000 PlayStation 2[2] 10 ноября 2000 26 октября 2000 28 декабря 2000 Game Boy Advance[3] 8 ноября 2002 4 сентября 2002 Жанры а…

Village development committee in Bagmati Province, NepalGumdel गुम्देलVillage development committeeGumdelLocation in NepalCoordinates: 27°43′N 86°29′E / 27.71°N 86.48°E / 27.71; 86.48Country   NepalProvinceBagmati ProvinceDistrictRamechhap DistrictPopulation (1991) • Total2,644Time zoneUTC+5:45 (Nepal Time) Gumdel is a village development committee in Ramechhap District in the Bagmati Province of north-eastern Nepal. A…

Kembali kehalaman sebelumnya

Lokasi Pengunjung: 3.91.19.28