CINXE.COM

Réflexion (informatique) — Wikipédia

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="fr" dir="ltr"> <head> <meta charset="UTF-8"> <title>Réflexion (informatique) — Wikipédia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )frwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t."," \t,"],"wgDigitTransformTable":["",""], "wgDefaultDateFormat":"dmy","wgMonthNames":["","janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"wgRequestId":"50a23e67-4167-43ca-81f4-465318cf0bda","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Réflexion_(informatique)","wgTitle":"Réflexion (informatique)","wgCurRevisionId":216962480,"wgRevisionId":216962480,"wgArticleId":242799,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Portail:Programmation informatique/Articles liés","Portail:Informatique/Articles liés","Programmation informatique"],"wgPageViewLanguage":"fr","wgPageContentLanguage":"fr","wgPageContentModel":"wikitext","wgRelevantPageName":"Réflexion_(informatique)","wgRelevantArticleId":242799,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia", "wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"fr","pageLanguageDir":"ltr","pageVariantFallbacks":"fr"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":7000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q1056451","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles" :"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.pygments.view","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ArchiveLinks","ext.gadget.Wdsearch","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions", "wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=fr&amp;modules=ext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=fr&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=fr&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Réflexion (informatique) — Wikipédia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//fr.m.wikipedia.org/wiki/R%C3%A9flexion_(informatique)"> <link rel="alternate" type="application/x-wiki" title="Modifier" href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipédia (fr)"> <link rel="EditURI" type="application/rsd+xml" href="//fr.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://fr.wikipedia.org/wiki/R%C3%A9flexion_(informatique)"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr"> <link rel="alternate" type="application/atom+xml" title="Flux Atom de Wikipédia" href="/w/index.php?title=Sp%C3%A9cial:Modifications_r%C3%A9centes&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Réflexion_informatique rootpage-Réflexion_informatique skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Aller au contenu</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Menu principal" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Menu principal</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Menu principal</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">masquer</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Accueil_principal" title="Accueil général [z]" accesskey="z"><span>Accueil</span></a></li><li id="n-thema" class="mw-list-item"><a href="/wiki/Portail:Accueil"><span>Portails thématiques</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Page_au_hasard" title="Affiche un article au hasard [x]" accesskey="x"><span>Article au hasard</span></a></li><li id="n-contact" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Contact"><span>Contact</span></a></li> </ul> </div> </div> <div id="p-Contribuer" class="vector-menu mw-portlet mw-portlet-Contribuer" > <div class="vector-menu-heading"> Contribuer </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-aboutwp" class="mw-list-item"><a href="/wiki/Aide:D%C3%A9buter"><span>Débuter sur Wikipédia</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/Aide:Accueil" title="Accès à l’aide"><span>Aide</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Accueil_de_la_communaut%C3%A9" title="À propos du projet, ce que vous pouvez faire, où trouver les informations"><span>Communauté</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Modifications_r%C3%A9centes" title="Liste des modifications récentes sur le wiki [r]" accesskey="r"><span>Modifications récentes</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Wikip%C3%A9dia:Accueil_principal" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipédia" src="/static/images/mobile/copyright/wikipedia-wordmark-fr.svg" style="width: 7.4375em; height: 1.125em;"> <img class="mw-logo-tagline" alt="l&#039;encyclopédie libre" src="/static/images/mobile/copyright/wikipedia-tagline-fr.svg" width="120" height="13" style="width: 7.5em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Sp%C3%A9cial:Recherche" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Rechercher sur Wikipédia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Rechercher</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Rechercher sur Wikipédia" aria-label="Rechercher sur Wikipédia" autocapitalize="sentences" title="Rechercher sur Wikipédia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Spécial:Recherche"> </div> <button class="cdx-button cdx-search-input__end-button">Rechercher</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Outils personnels"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Apparence"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Modifier l&#039;apparence de la taille, de la largeur et de la couleur de la police de la page" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Apparence" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Apparence</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_fr.wikipedia.org&amp;uselang=fr" class=""><span>Faire un don</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Sp%C3%A9cial:Cr%C3%A9er_un_compte&amp;returnto=R%C3%A9flexion+%28informatique%29" title="Nous vous encourageons à créer un compte utilisateur et vous connecter ; ce n’est cependant pas obligatoire." class=""><span>Créer un compte</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Sp%C3%A9cial:Connexion&amp;returnto=R%C3%A9flexion+%28informatique%29" title="Nous vous encourageons à vous connecter ; ce n’est cependant pas obligatoire. [o]" accesskey="o" class=""><span>Se connecter</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Plus d’options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Outils personnels" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Outils personnels</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="Menu utilisateur" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_fr.wikipedia.org&amp;uselang=fr"><span>Faire un don</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:Cr%C3%A9er_un_compte&amp;returnto=R%C3%A9flexion+%28informatique%29" title="Nous vous encourageons à créer un compte utilisateur et vous connecter ; ce n’est cependant pas obligatoire."><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Créer un compte</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:Connexion&amp;returnto=R%C3%A9flexion+%28informatique%29" title="Nous vous encourageons à vous connecter ; ce n’est cependant pas obligatoire. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Se connecter</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages pour les contributeurs déconnectés <a href="/wiki/Aide:Premiers_pas" aria-label="En savoir plus sur la contribution"><span>en savoir plus</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Mes_contributions" title="Une liste des modifications effectuées depuis cette adresse IP [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Mes_discussions" title="La page de discussion pour les contributions depuis cette adresse IP [n]" accesskey="n"><span>Discussion</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Sommaire" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Sommaire</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">masquer</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Début</div> </a> </li> <li id="toc-Introspection_et_intercession" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Introspection_et_intercession"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Introspection et intercession</span> </div> </a> <ul id="toc-Introspection_et_intercession-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Réflexion_structurelle_et_réflexion_comportementale" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Réflexion_structurelle_et_réflexion_comportementale"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Réflexion structurelle et réflexion comportementale</span> </div> </a> <ul id="toc-Réflexion_structurelle_et_réflexion_comportementale-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Réflexion_et_programmation_objet" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Réflexion_et_programmation_objet"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Réflexion et programmation objet</span> </div> </a> <ul id="toc-Réflexion_et_programmation_objet-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Langages_réflexifs" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Langages_réflexifs"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Langages réflexifs</span> </div> </a> <ul id="toc-Langages_réflexifs-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Exemple" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Exemple"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Exemple</span> </div> </a> <ul id="toc-Exemple-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Bibliographie" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Bibliographie"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Bibliographie</span> </div> </a> <ul id="toc-Bibliographie-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Voir_aussi" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Voir_aussi"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Voir aussi</span> </div> </a> <ul id="toc-Voir_aussi-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Sommaire" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Basculer la table des matières" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Basculer la table des matières</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Réflexion (informatique)</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Aller à un article dans une autre langue. Disponible en 25 langues." > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-25" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">25 langues</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%A8%D8%B1%D9%85%D8%AC%D8%A9_%D8%A7%D9%86%D8%B9%D9%83%D8%A7%D8%B3%D9%8A%D8%A9" title="برمجة انعكاسية – arabe" lang="ar" hreflang="ar" data-title="برمجة انعكاسية" data-language-autonym="العربية" data-language-local-name="arabe" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Refleksiya" title="Refleksiya – azerbaïdjanais" lang="az" hreflang="az" data-title="Refleksiya" data-language-autonym="Azərbaycanca" data-language-local-name="azerbaïdjanais" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Reflexi%C3%B3_(inform%C3%A0tica)" title="Reflexió (informàtica) – catalan" lang="ca" hreflang="ca" data-title="Reflexió (informàtica)" data-language-autonym="Català" data-language-local-name="catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Reflexe_(programov%C3%A1n%C3%AD)" title="Reflexe (programování) – tchèque" lang="cs" hreflang="cs" data-title="Reflexe (programování)" data-language-autonym="Čeština" data-language-local-name="tchèque" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Reflexion_(Programmierung)" title="Reflexion (Programmierung) – allemand" lang="de" hreflang="de" data-title="Reflexion (Programmierung)" data-language-autonym="Deutsch" data-language-local-name="allemand" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/%CE%91%CE%BD%CE%AC%CE%BA%CE%BB%CE%B1%CF%83%CE%B7_(%CF%85%CF%80%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CF%83%CF%84%CE%AD%CF%82)" title="Ανάκλαση (υπολογιστές) – grec" lang="el" hreflang="el" data-title="Ανάκλαση (υπολογιστές)" data-language-autonym="Ελληνικά" data-language-local-name="grec" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Reflective_programming" title="Reflective programming – anglais" lang="en" hreflang="en" data-title="Reflective programming" data-language-autonym="English" data-language-local-name="anglais" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Reflexi%C3%B3n_(inform%C3%A1tica)" title="Reflexión (informática) – espagnol" lang="es" hreflang="es" data-title="Reflexión (informática)" data-language-autonym="Español" data-language-local-name="espagnol" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C_%D9%BE%DA%98%D9%88%D8%A7%DA%A9%DB%8C" title="برنامه‌نویسی پژواکی – persan" lang="fa" hreflang="fa" data-title="برنامه‌نویسی پژواکی" data-language-autonym="فارسی" data-language-local-name="persan" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/Reflection_(%D7%AA%D7%9B%D7%A0%D7%95%D7%AA)" title="Reflection (תכנות) – hébreu" lang="he" hreflang="he" data-title="Reflection (תכנות)" data-language-autonym="עברית" data-language-local-name="hébreu" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Riflessione_(informatica)" title="Riflessione (informatica) – italien" lang="it" hreflang="it" data-title="Riflessione (informatica)" data-language-autonym="Italiano" data-language-local-name="italien" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%95%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3_(%E6%83%85%E5%A0%B1%E5%B7%A5%E5%AD%A6)" title="リフレクション (情報工学) – japonais" lang="ja" hreflang="ja" data-title="リフレクション (情報工学)" data-language-autonym="日本語" data-language-local-name="japonais" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EB%B0%98%EC%98%81_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99)" title="반영 (컴퓨터 과학) – coréen" lang="ko" hreflang="ko" data-title="반영 (컴퓨터 과학)" data-language-autonym="한국어" data-language-local-name="coréen" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/Refleksija_(programavimas)" title="Refleksija (programavimas) – lituanien" lang="lt" hreflang="lt" data-title="Refleksija (programavimas)" data-language-autonym="Lietuvių" data-language-local-name="lituanien" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%B1%E0%B4%BF%E0%B4%AB%E0%B5%8D%E0%B4%B2%E0%B4%95%E0%B5%8D%E0%B4%9F%E0%B5%80%E0%B4%B5%E0%B5%8D_%E0%B4%AA%E0%B5%8D%E0%B4%B0%E0%B5%8B%E0%B4%97%E0%B5%8D%E0%B4%B0%E0%B4%BE%E0%B4%AE%E0%B4%BF%E0%B4%82%E0%B4%97%E0%B5%8D" title="റിഫ്ലക്ടീവ് പ്രോഗ്രാമിംഗ് – malayalam" lang="ml" hreflang="ml" data-title="റിഫ്ലക്ടീവ് പ്രോഗ്രാമിംഗ്" data-language-autonym="മലയാളം" data-language-local-name="malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Pantulan_(pengaturcaraan_komputer)" title="Pantulan (pengaturcaraan komputer) – malais" lang="ms" hreflang="ms" data-title="Pantulan (pengaturcaraan komputer)" data-language-autonym="Bahasa Melayu" data-language-local-name="malais" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Reflectie_(informatica)" title="Reflectie (informatica) – néerlandais" lang="nl" hreflang="nl" data-title="Reflectie (informatica)" data-language-autonym="Nederlands" data-language-local-name="néerlandais" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Mechanizm_refleksji" title="Mechanizm refleksji – polonais" lang="pl" hreflang="pl" data-title="Mechanizm refleksji" data-language-autonym="Polski" data-language-local-name="polonais" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Reflex%C3%A3o_(programa%C3%A7%C3%A3o)" title="Reflexão (programação) – portugais" lang="pt" hreflang="pt" data-title="Reflexão (programação)" data-language-autonym="Português" data-language-local-name="portugais" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%84%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)" title="Рефлексия (программирование) – russe" lang="ru" hreflang="ru" data-title="Рефлексия (программирование)" data-language-autonym="Русский" data-language-local-name="russe" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Refleksija_(ra%C4%8Dunalni%C5%A1tvo)" title="Refleksija (računalništvo) – slovène" lang="sl" hreflang="sl" data-title="Refleksija (računalništvo)" data-language-autonym="Slovenščina" data-language-local-name="slovène" class="interlanguage-link-target"><span>Slovenščina</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/%D0%A0%D0%B5%D1%84%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D1%98%D0%B0_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D1%9A%D0%B5)" title="Рефлексија (програмирање) – serbe" lang="sr" hreflang="sr" data-title="Рефлексија (програмирање)" data-language-autonym="Српски / srpski" data-language-local-name="serbe" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%A0%D0%B5%D1%84%D0%BB%D0%B5%D0%BA%D1%81%D1%96%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" title="Рефлексія (програмування) – ukrainien" lang="uk" hreflang="uk" data-title="Рефлексія (програмування)" data-language-autonym="Українська" data-language-local-name="ukrainien" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/Reflection_(khoa_h%E1%BB%8Dc_m%C3%A1y_t%C3%ADnh)" title="Reflection (khoa học máy tính) – vietnamien" lang="vi" hreflang="vi" data-title="Reflection (khoa học máy tính)" data-language-autonym="Tiếng Việt" data-language-local-name="vietnamien" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E5%8F%8D%E5%B0%84%E5%BC%8F%E7%BC%96%E7%A8%8B" title="反射式编程 – chinois" lang="zh" hreflang="zh" data-title="反射式编程" data-language-autonym="中文" data-language-local-name="chinois" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q1056451#sitelinks-wikipedia" title="Modifier les liens interlangues" class="wbc-editpage">Modifier les liens</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Espaces de noms"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/R%C3%A9flexion_(informatique)" title="Voir le contenu de la page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Discussion:R%C3%A9flexion_(informatique)" rel="discussion" title="Discussion au sujet de cette page de contenu [t]" accesskey="t"><span>Discussion</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Modifier la variante de langue" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">français</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Affichages"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/R%C3%A9flexion_(informatique)"><span>Lire</span></a></li><li id="ca-ve-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;veaction=edit" title="Modifier cette page [v]" accesskey="v"><span>Modifier</span></a></li><li id="ca-edit" class="collapsible vector-tab-noicon mw-list-item"><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=edit" title="Modifier le wikicode de cette page [e]" accesskey="e"><span>Modifier le code</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=history" title="Historique des versions de cette page [h]" accesskey="h"><span>Voir l’historique</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Outils de la page"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Outils" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Outils</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Outils</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">masquer</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="Plus d’options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/R%C3%A9flexion_(informatique)"><span>Lire</span></a></li><li id="ca-more-ve-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;veaction=edit" title="Modifier cette page [v]" accesskey="v"><span>Modifier</span></a></li><li id="ca-more-edit" class="collapsible vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=edit" title="Modifier le wikicode de cette page [e]" accesskey="e"><span>Modifier le code</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=history"><span>Voir l’historique</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> Général </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Pages_li%C3%A9es/R%C3%A9flexion_(informatique)" title="Liste des pages liées qui pointent sur celle-ci [j]" accesskey="j"><span>Pages liées</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Suivi_des_liens/R%C3%A9flexion_(informatique)" rel="nofollow" title="Liste des modifications récentes des pages appelées par celle-ci [k]" accesskey="k"><span>Suivi des pages liées</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Aide:Importer_un_fichier" title="Téléverser des fichiers [u]" accesskey="u"><span>Téléverser un fichier</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Pages_sp%C3%A9ciales" title="Liste de toutes les pages spéciales [q]" accesskey="q"><span>Pages spéciales</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;oldid=216962480" title="Adresse permanente de cette version de cette page"><span>Lien permanent</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=info" title="Davantage d’informations sur cette page"><span>Informations sur la page</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:Citer&amp;page=R%C3%A9flexion_%28informatique%29&amp;id=216962480&amp;wpFormIdentifier=titleform" title="Informations sur la manière de citer cette page"><span>Citer cette page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:UrlShortener&amp;url=https%3A%2F%2Ffr.wikipedia.org%2Fwiki%2FR%25C3%25A9flexion_%28informatique%29"><span>Obtenir l'URL raccourcie</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:QrCode&amp;url=https%3A%2F%2Ffr.wikipedia.org%2Fwiki%2FR%25C3%25A9flexion_%28informatique%29"><span>Télécharger le code QR</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Imprimer / exporter </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:Livre&amp;bookcmd=book_creator&amp;referer=R%C3%A9flexion+%28informatique%29"><span>Créer un livre</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:DownloadAsPdf&amp;page=R%C3%A9flexion_%28informatique%29&amp;action=show-download-screen"><span>Télécharger comme PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;printable=yes" title="Version imprimable de cette page [p]" accesskey="p"><span>Version imprimable</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> Dans d’autres projets </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q1056451" title="Lien vers l’élément dans le dépôt de données connecté [g]" accesskey="g"><span>Élément Wikidata</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Outils de la page"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Apparence"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Apparence</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">masquer</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">Un article de Wikipédia, l&#039;encyclopédie libre.</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><div class="bandeau-container metadata homonymie hatnote"><div class="bandeau-cell bandeau-icone" style="display:table-cell;padding-right:0.5em"><span class="noviewer" typeof="mw:File"><a href="/wiki/Aide:Homonymie" title="Aide:Homonymie"><img alt="Page d’aide sur l’homonymie" src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Logo_disambig.svg/20px-Logo_disambig.svg.png" decoding="async" width="20" height="15" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Logo_disambig.svg/30px-Logo_disambig.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Logo_disambig.svg/40px-Logo_disambig.svg.png 2x" data-file-width="512" data-file-height="375" /></a></span></div><div class="bandeau-cell" style="display:table-cell;padding-right:0.5em"> <p>Pour les articles homonymes, voir <a href="/wiki/R%C3%A9flexion" class="mw-disambig" title="Réflexion">Réflexion</a> et <a href="/wiki/R%C3%A9flexivit%C3%A9" class="mw-disambig" title="Réflexivité">Réflexivité</a>. </p> </div></div> <p>En <a href="/wiki/Programmation_informatique" title="Programmation informatique">programmation informatique</a>, la <b>réflexion</b> est la capacité d'un <a href="/wiki/Programme_informatique" title="Programme informatique">programme</a> à examiner, et éventuellement à modifier, ses propres structures internes de haut niveau lors de son <a href="/wiki/Instruction_machine" class="mw-redirect" title="Instruction machine">exécution</a>. </p><p>On appelle <b>réflexivité</b> le fait pour un langage de programmation de permettre l'écriture de tels programmes. Un tel langage de programmation est dit <b>réflexif</b>. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Introspection_et_intercession">Introspection et intercession</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;veaction=edit&amp;section=1" title="Modifier la section : Introspection et intercession" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=edit&amp;section=1" title="Modifier le code source de la section : Introspection et intercession"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>On distingue deux techniques utilisées par les systèmes réflexifs&#160;: </p> <ul><li><b>l'introspection</b>, qui est la capacité d'un programme à examiner son propre état&#160;;</li> <li><b>l'intercession</b>, qui est la capacité d'un programme à modifier son propre état d'exécution ou d'altérer sa propre interprétation ou signification.</li></ul> <p>L'<i>introspection</i> est utilisée pour effectuer des mesures de performance, inspecter des modules ou <a href="/wiki/D%C3%A9boguer" class="mw-redirect" title="Déboguer">déboguer</a> un programme. Elle est implémentée dans des langages comme <a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a> ou <a href="/wiki/Java_(langage)" title="Java (langage)">Java</a> qui fournissent des outils pour connaître la <a href="/wiki/Classe_(informatique)" title="Classe (informatique)">classe</a> d'un objet, ses <a href="/wiki/Attribut_(informatique)" title="Attribut (informatique)">attributs</a>, ses <a href="/wiki/M%C3%A9thode_(informatique)" title="Méthode (informatique)">méthodes</a>, etc. L'introspection n'existe pas dans des langages comme <a href="/wiki/C_(langage)" title="C (langage)">C</a> ou <a href="/wiki/Pascal_(langage)" title="Pascal (langage)">Pascal</a> (mais existe dans <a href="/wiki/Embarcadero_Delphi" class="mw-redirect" title="Embarcadero Delphi">Delphi</a> depuis la version 2010). </p><p>L'<i>intercession</i> permet à un programme d'évoluer automatiquement en fonction des besoins et de l'environnement. Cette propriété apparaît dans des langages comme <a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a>, <a href="/wiki/Groovy_(langage)" title="Groovy (langage)">Groovy</a> ou <a href="/wiki/Python_(langage)" title="Python (langage)">Python</a>, mais elle n'existe pas dans des langages comme C. </p><p>La réflexion, l’introspection et l'intercession sont des cas particuliers de <a href="/wiki/M%C3%A9taprogrammation" title="Métaprogrammation">métaprogrammation</a>. </p> <div class="mw-heading mw-heading2"><h2 id="Réflexion_structurelle_et_réflexion_comportementale"><span id="R.C3.A9flexion_structurelle_et_r.C3.A9flexion_comportementale"></span>Réflexion structurelle et réflexion comportementale</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;veaction=edit&amp;section=2" title="Modifier la section : Réflexion structurelle et réflexion comportementale" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=edit&amp;section=2" title="Modifier le code source de la section : Réflexion structurelle et réflexion comportementale"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Parallèlement aux concepts d'introspection et d'intercession, il existe deux types de réflexion&#160;: la réflexion structurelle (qui concerne surtout le code du programme) et la réflexion comportementale (qui concerne surtout l’environnement du programme). </p><p>La <b>réflexion structurelle</b> consiste à <a href="/wiki/R%C3%A9ification#Informatique" title="Réification">réifier</a> le code d'un programme et tous les <a href="/wiki/Type_abstrait" title="Type abstrait">types abstraits</a> accessibles par ce programme. Dans le premier cas, la réification du code d'un programme permet de manipuler ce programme pendant l'exécution. Il est possible ainsi de maintenir un programme même lorsque celui-ci effectue des tâches. Dans le deuxième cas, la réification des types abstraits permet au programme d'examiner et de modifier la structure de types complexes. On peut ainsi, par exemple, mettre au point des algorithmes génériques de <a href="/wiki/S%C3%A9rialisation" title="Sérialisation">sérialisation</a>. </p><p>La <b>réflexion comportementale</b> (ou réflexion de comportement) concerne plus particulièrement l'exécution du programme et l'environnement du programme. Par ce type de réflexion, un programme peut «&#160;savoir&#160;» comment il est interprété et peut ainsi modifier sa façon d'être exécuté, en intervenant sur les structures de données de l'évaluateur du programme et sur l'évaluateur lui-même. De fait, le programme peut obtenir des informations sur son implémentation ou même s'auto-réorganiser afin de s'adapter au mieux à un «&#160;environnement&#160;». </p> <div class="mw-heading mw-heading2"><h2 id="Réflexion_et_programmation_objet"><span id="R.C3.A9flexion_et_programmation_objet"></span>Réflexion et programmation objet</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;veaction=edit&amp;section=3" title="Modifier la section : Réflexion et programmation objet" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=edit&amp;section=3" title="Modifier le code source de la section : Réflexion et programmation objet"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>En <a href="/wiki/Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">programmation orientée objet</a>, l'architecture réflexive est implémentée par le concept des <a href="/wiki/M%C3%A9taobjet" title="Métaobjet">métaobjets</a>. Ceux-ci représentent des éléments des programmes orientés objets comme les classes, les messages et les fonctions génériques. La manipulation de ces métaobjets se fait par un <a href="/wiki/Protocole_%C3%A0_m%C3%A9taobjets" title="Protocole à métaobjets">protocole à métaobjets</a> qui permet de décider des comportements du langage. <a href="/wiki/CLOS" class="mw-redirect" title="CLOS">CLOS</a> est le premier langage à avoir implémenté un protocole à méta-objets. </p> <div class="mw-heading mw-heading2"><h2 id="Langages_réflexifs"><span id="Langages_r.C3.A9flexifs"></span>Langages réflexifs</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;veaction=edit&amp;section=4" title="Modifier la section : Langages réflexifs" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=edit&amp;section=4" title="Modifier le code source de la section : Langages réflexifs"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Les langages suivants sont réflexifs&#160;: </p> <ul><li><a href="/wiki/D_(langage)" title="D (langage)">D</a></li> <li><a href="/wiki/Go_(langage)" title="Go (langage)">Go</a></li></ul> <ul><li><a href="/wiki/Qt" title="Qt">Qt</a> (bibliothèque C++)</li> <li><a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a></li> <li><a href="/wiki/LOGO" class="mw-redirect" title="LOGO">LOGO</a></li> <li><a href="/wiki/CLOS" class="mw-redirect" title="CLOS">CLOS</a></li> <li><a href="/wiki/Python_(langage)" title="Python (langage)">Python</a></li> <li><a href="/wiki/Tool_Command_Language" title="Tool Command Language">Tcl</a></li> <li><a href="/wiki/Ruby" title="Ruby">Ruby</a></li> <li><a href="/wiki/Io_(langage)" title="Io (langage)">Io</a></li> <li><a href="/wiki/Java_(langage)" title="Java (langage)">Java</a></li> <li><a href="/wiki/Objective-C" title="Objective-C">Objective-C</a></li> <li><a href="/wiki/PHP" title="PHP">PHP</a>, depuis la version 4</li> <li><a href="/wiki/Lua" title="Lua">Lua</a></li> <li>les langages qui fonctionnent avec l'architecture <a href="/wiki/Microsoft_.NET" title="Microsoft .NET">.NET</a> (comme le <a href="/wiki/C_sharp" class="mw-redirect" title="C sharp">C#</a>, le <a href="/wiki/Visual_Basic" title="Visual Basic">Visual Basic</a>, le <a href="/wiki/J_Sharp" title="J Sharp">J#</a> ou le <a href="/wiki/C%2B%2B" title="C++">C++/CLI</a>)</li> <li>langages assembleurs</li></ul> <p>Dans les langages interprétés ou compilé à la volée avant exécution (<a href="/wiki/Lisp" title="Lisp">Lisp</a> par exemple), il n'y a pas de différence entre l'interprétation du code et la réflexion étant donné que c'est le code source qui évolue et non uniquement le code issu de la compilation. </p> <div class="mw-heading mw-heading2"><h2 id="Exemple">Exemple</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;veaction=edit&amp;section=5" title="Modifier la section : Exemple" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=edit&amp;section=5" title="Modifier le code source de la section : Exemple"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>L'exemple suivant est écrit en <a href="/wiki/Java_(langage)" title="Java (langage)">Java</a>&#160;: </p> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// Sans utiliser la réflexion</span> <span class="n">Foo</span><span class="w"> </span><span class="n">foo</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Foo</span><span class="p">();</span> <span class="n">foo</span><span class="p">.</span><span class="na">hello</span><span class="p">();</span> <span class="c1">// En utilisant la réflexion</span> <span class="n">Class</span><span class="o">&lt;?&gt;</span><span class="w"> </span><span class="n">cl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Class</span><span class="p">.</span><span class="na">forName</span><span class="p">(</span><span class="s">&quot;package.name.Foo&quot;</span><span class="p">);</span> <span class="c1">// Instanciation de l&#39;objet dont la méthode est à appeler</span> <span class="n">Object</span><span class="w"> </span><span class="n">instance</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">cl</span><span class="p">.</span><span class="na">newInstance</span><span class="p">();</span> <span class="c1">// Invocation de la méthode via réflexion</span> <span class="n">Method</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">cl</span><span class="p">.</span><span class="na">getClass</span><span class="p">().</span><span class="na">getDeclaredMethod</span><span class="p">(</span><span class="s">&quot;hello&quot;</span><span class="p">,</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Class</span><span class="o">&lt;?&gt;[</span><span class="mi">0</span><span class="o">]</span><span class="p">);</span> <span class="n">method</span><span class="p">.</span><span class="na">invoke</span><span class="p">(</span><span class="n">instance</span><span class="p">);</span> </pre></div> <p>L'exemple suivant est écrit en <a href="/wiki/C_sharp" class="mw-redirect" title="C sharp">C#</a>&#160;: </p> <div class="mw-highlight mw-highlight-lang-csharp mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// Sans utiliser la réflexion</span> <span class="n">Foo</span><span class="w"> </span><span class="n">foo</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Foo</span><span class="p">();</span> <span class="n">foo</span><span class="p">.</span><span class="n">hello</span><span class="p">();</span> <span class="c1">// En utilisant la réflexion</span> <span class="n">Type</span><span class="w"> </span><span class="n">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">typeof</span><span class="p">(</span><span class="n">Foo</span><span class="p">);</span> <span class="c1">// Instanciation de l&#39;objet dont la méthode est à appeler</span> <span class="c1">// Il existe deux façons d&#39;instancier un objet via la réflexion&#160;:</span> <span class="c1">// 1, soit&#160;:</span> <span class="n">ConstructorInfo</span><span class="w"> </span><span class="n">constructor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">type</span><span class="p">.</span><span class="n">GetConstructor</span><span class="p">(</span><span class="n">Type</span><span class="p">.</span><span class="n">EmptyTypes</span><span class="p">);</span> <span class="kt">object</span><span class="w"> </span><span class="n">instance</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">constructor</span><span class="p">.</span><span class="n">Invoke</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="kt">object</span><span class="p">[]{});</span> <span class="c1">// 2, soit&#160;:</span> <span class="n">instance</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Activator</span><span class="p">.</span><span class="n">CreateInstance</span><span class="p">(</span><span class="n">type</span><span class="p">);</span> <span class="c1">// Invocation de la méthode via réflexion</span> <span class="n">MethodInfo</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">type</span><span class="p">.</span><span class="n">GetMethod</span><span class="p">(</span><span class="s">&quot;hello&quot;</span><span class="p">);</span> <span class="n">method</span><span class="p">.</span><span class="n">Invoke</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">object</span><span class="p">[]{});</span> </pre></div> <p>Les deux morceaux de code créent une instance de la classe <i>Foo</i> et appellent leur méthode <i>hello</i>. </p><p>Dans le premier programme, le nom des classes et des méthodes est codé en dur, il n'est pas possible d'utiliser le nom d'une autre classe. Dans le second programme, en revanche, le nom des classes et des méthodes peut varier à l'exécution. </p> <div class="mw-heading mw-heading2"><h2 id="Bibliographie">Bibliographie</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;veaction=edit&amp;section=6" title="Modifier la section : Bibliographie" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=edit&amp;section=6" title="Modifier le code source de la section : Bibliographie"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>D. G. Bobrow, R. G. Gabriel, and J. L. White. <i>Object oriented programming: the CLOS perspective</i>. MIT Press, 1993.</li> <li>G. Kickzales, J. des Rivières, and D. G. Bobrow. <i>The art of the metaobject protocol</i>. MIT Press, 1991.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;veaction=edit&amp;section=7" title="Modifier la section : Voir aussi" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=R%C3%A9flexion_(informatique)&amp;action=edit&amp;section=7" title="Modifier le code source de la section : Voir aussi"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Quine_(informatique)" title="Quine (informatique)">Quine</a></li> <li><a href="/wiki/R%C3%A9ification" title="Réification">Réification</a></li> <li><a href="/wiki/M%C3%A9taobjet" title="Métaobjet">Métaobjet</a></li> <li><a href="/wiki/Protocole_%C3%A0_m%C3%A9ta-objets" class="mw-redirect" title="Protocole à méta-objets">Protocole à méta-objets</a></li> <li><a href="/wiki/Impr%C3%A9dicativit%C3%A9" title="Imprédicativité">Imprédicativité</a></li> <li><a href="/wiki/Homoiconicit%C3%A9" title="Homoiconicité">Homoiconicité</a></li> <li><a href="/wiki/Introspection" title="Introspection">Introspection en psychologie et en philosophie</a></li></ul> <div class="navbox-container" style="clear:both;"> <table class="navbox collapsible noprint autocollapse" style=""> <tbody><tr><th class="navbox-title" colspan="2" style=""><div style="float:left; width:6em; text-align:left"><div class="noprint plainlinks nowrap tnavbar" style="padding:0; font-size:xx-small; color:var(--color-emphasized, #000000);"><a href="/wiki/Mod%C3%A8le:Palette_Paradigme_de_programmation" title="Modèle:Palette Paradigme de programmation"><abbr class="abbr" title="Voir ce modèle.">v</abbr></a>&#160;· <a class="external text" href="https://fr.wikipedia.org/w/index.php?title=Mod%C3%A8le:Palette_Paradigme_de_programmation&amp;action=edit"><abbr class="abbr" title="Modifier ce modèle. Merci de prévisualiser avant de sauvegarder.">m</abbr></a></div></div><div style="font-size:110%"><a href="/wiki/Paradigme_(programmation)" title="Paradigme (programmation)">Paradigmes de programmation</a></div></th> </tr> <tr> <th class="navbox-group" style=""><a href="/wiki/Programmation_imp%C3%A9rative" title="Programmation impérative">Impérative</a></th> <td class="navbox-list" style=""><table class="navbox-subgroup" style=""> <tbody><tr> <th class="navbox-group" style=""><a href="/wiki/Programmation_structur%C3%A9e" title="Programmation structurée">Structurée</a></th> <td class="navbox-list" style=";"><div class="liste-horizontale"> <ul><li><a href="/wiki/Programmation_orient%C3%A9e_composant" title="Programmation orientée composant">Orientée composant</a></li> <li><a href="/wiki/Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">Orientée objet</a> <ul><li><a href="/wiki/Programmation_orient%C3%A9e_aspect" title="Programmation orientée aspect">Orientée aspects</a></li> <li><a href="/wiki/Programmation_orient%C3%A9e_prototype" title="Programmation orientée prototype">Orientée prototype</a></li> <li><a href="/w/index.php?title=Programmation_orient%C3%A9e_classe&amp;action=edit&amp;redlink=1" class="new" title="Programmation orientée classe (page inexistante)">Orientée classe</a></li></ul></li></ul> </div></td> </tr> <tr> <td class="navbox-list navbox-even" style=";" colspan="2"><div class="liste-horizontale"> <ul><li><a href="/wiki/Programmation_proc%C3%A9durale" title="Programmation procédurale">Procédurale</a> <ul><li><a href="/wiki/Programmation_%C3%A9v%C3%A9nementielle" title="Programmation événementielle">Événementielle</a></li></ul></li></ul> </div></td> </tr> </tbody></table></td> </tr> <tr> <th class="navbox-group" style=""><a href="/wiki/Programmation_d%C3%A9clarative" title="Programmation déclarative">Déclarative</a></th> <td class="navbox-list navbox-even" style=""><div class="liste-horizontale"> <ul><li><a href="/wiki/Programmation_fonctionnelle" title="Programmation fonctionnelle">Fonctionnelle</a></li> <li><a href="/wiki/Programmation_logique" title="Programmation logique">Logique</a></li> <li><a href="/wiki/Programmation_par_contraintes" title="Programmation par contraintes">Par contraintes</a></li> <li><a href="/w/index.php?title=Programmation_descriptive&amp;action=edit&amp;redlink=1" class="new" title="Programmation descriptive (page inexistante)">Descriptive</a></li></ul> </div></td> </tr> <tr> <th class="navbox-group" style=""><a href="/wiki/M%C3%A9taprogrammation" title="Métaprogrammation">Métaprogrammation</a></th> <td class="navbox-list" style=""><div class="liste-horizontale"> <ul><li><a class="mw-selflink selflink">Réflexive</a></li> <li><a href="/wiki/Macro-d%C3%A9finition" title="Macro-définition">Macros</a></li> <li><a href="/wiki/M%C3%A9taprogrammation_avec_des_patrons" title="Métaprogrammation avec des patrons">Patrons</a></li></ul> </div></td> </tr> <tr> <th class="navbox-group" style="">Autres</th> <td class="navbox-list navbox-even" style=""><div class="liste-horizontale"> <ul><li><a href="/wiki/Programmation_concurrente" title="Programmation concurrente">Concurrente</a></li> <li><a href="/wiki/Programmation_par_contrat" title="Programmation par contrat">Par contrat</a></li> <li><a href="/wiki/Programmation_r%C3%A9active" title="Programmation réactive">Réactive</a></li> <li><a href="/wiki/Programmation_synchrone" title="Programmation synchrone">Synchrone</a></li></ul> </div></td> </tr> <tr> <td class="navbox-banner" style="" colspan="2"><a href="/wiki/Comparaison_des_langages_de_programmation_multi-paradigmes" title="Comparaison des langages de programmation multi-paradigmes">Comparaison des langages de programmation multi-paradigmes</a></td></tr></tbody></table> </div> <ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"><a href="/wiki/Portail:Programmation_informatique" title="Portail de la programmation informatique"><img alt="icône décorative" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Circle-icons-dev.svg/24px-Circle-icons-dev.svg.png" decoding="async" width="24" height="24" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Circle-icons-dev.svg/36px-Circle-icons-dev.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Circle-icons-dev.svg/48px-Circle-icons-dev.svg.png 2x" data-file-width="512" data-file-height="512" /></a></span></span> <span class="bandeau-portail-texte"><a href="/wiki/Portail:Programmation_informatique" title="Portail:Programmation informatique">Portail de la programmation informatique</a></span> </span></li> </ul> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐4d6wn Cached time: 20241124025015 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.105 seconds Real time usage: 0.358 seconds Preprocessor visited node count: 720/1000000 Post‐expand include size: 25423/2097152 bytes Template argument size: 5705/2097152 bytes Highest expansion depth: 14/100 Expensive parser function count: 2/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 5040/5000000 bytes Lua time usage: 0.028/10.000 seconds Lua memory usage: 1273555/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 318.521 1 -total 16.45% 52.405 1 Modèle:Portail 12.04% 38.345 1 Modèle:Voir_homonymes 11.59% 36.930 1 Modèle:Méta_bandeau_de_note 9.39% 29.917 1 Modèle:Méta_bandeau 7.66% 24.410 1 Modèle:Palette 6.93% 22.075 1 Modèle:Catégorisation_badges 6.73% 21.422 1 Modèle:Suivi_des_biographies 5.64% 17.980 1 Modèle:Palette_Paradigme_de_programmation 4.63% 14.740 1 Modèle:Méta_palette_de_navigation --> <!-- Saved in parser cache with key frwiki:pcache:idhash:242799-0!canonical and timestamp 20241124025015 and revision id 216962480. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Ce document provient de «&#160;<a dir="ltr" href="https://fr.wikipedia.org/w/index.php?title=Réflexion_(informatique)&amp;oldid=216962480">https://fr.wikipedia.org/w/index.php?title=Réflexion_(informatique)&amp;oldid=216962480</a>&#160;».</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Cat%C3%A9gorie:Accueil" title="Catégorie:Accueil">Catégorie</a> : <ul><li><a href="/wiki/Cat%C3%A9gorie:Programmation_informatique" title="Catégorie:Programmation informatique">Programmation informatique</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Catégories cachées : <ul><li><a href="/wiki/Cat%C3%A9gorie:Portail:Programmation_informatique/Articles_li%C3%A9s" title="Catégorie:Portail:Programmation informatique/Articles liés">Portail:Programmation informatique/Articles liés</a></li><li><a href="/wiki/Cat%C3%A9gorie:Portail:Informatique/Articles_li%C3%A9s" title="Catégorie:Portail:Informatique/Articles liés">Portail:Informatique/Articles liés</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> La dernière modification de cette page a été faite le 20 juillet 2024 à 20:06.</li> <li id="footer-info-copyright"><span style="white-space: normal"><a href="/wiki/Wikip%C3%A9dia:Citation_et_r%C3%A9utilisation_du_contenu_de_Wikip%C3%A9dia" title="Wikipédia:Citation et réutilisation du contenu de Wikipédia">Droit d'auteur</a>&#160;: les textes sont disponibles sous <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">licence Creative Commons attribution, partage dans les mêmes conditions</a>&#160;; d’autres conditions peuvent s’appliquer. Voyez les <a class="external text" href="https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use/fr">conditions d’utilisation</a> pour plus de détails, ainsi que les <a href="/wiki/Wikip%C3%A9dia:Cr%C3%A9dits_graphiques" title="Wikipédia:Crédits graphiques">crédits graphiques</a>. En cas de réutilisation des textes de cette page, voyez <a href="/wiki/Sp%C3%A9cial:Citer/R%C3%A9flexion_(informatique)" title="Spécial:Citer/Réflexion (informatique)">comment citer les auteurs et mentionner la licence</a>.<br /> Wikipedia® est une marque déposée de la <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, organisation de bienfaisance régie par le paragraphe <a href="/wiki/501c" title="501c">501(c)(3)</a> du code fiscal des États-Unis.</span><br /></li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/fr">Politique de confidentialité</a></li> <li id="footer-places-about"><a href="/wiki/Wikip%C3%A9dia:%C3%80_propos_de_Wikip%C3%A9dia">À propos de Wikipédia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikip%C3%A9dia:Avertissements_g%C3%A9n%C3%A9raux">Avertissements</a></li> <li id="footer-places-contact"><a href="//fr.wikipedia.org/wiki/Wikipédia:Contact">Contact</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code de conduite</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Développeurs</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/fr.wikipedia.org">Statistiques</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Déclaration sur les témoins (cookies)</a></li> <li id="footer-places-mobileview"><a href="//fr.m.wikipedia.org/w/index.php?title=R%C3%A9flexion_(informatique)&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Version mobile</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-4d6wn","wgBackendResponseTime":608,"wgPageParseReport":{"limitreport":{"cputime":"0.105","walltime":"0.358","ppvisitednodes":{"value":720,"limit":1000000},"postexpandincludesize":{"value":25423,"limit":2097152},"templateargumentsize":{"value":5705,"limit":2097152},"expansiondepth":{"value":14,"limit":100},"expensivefunctioncount":{"value":2,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":5040,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 318.521 1 -total"," 16.45% 52.405 1 Modèle:Portail"," 12.04% 38.345 1 Modèle:Voir_homonymes"," 11.59% 36.930 1 Modèle:Méta_bandeau_de_note"," 9.39% 29.917 1 Modèle:Méta_bandeau"," 7.66% 24.410 1 Modèle:Palette"," 6.93% 22.075 1 Modèle:Catégorisation_badges"," 6.73% 21.422 1 Modèle:Suivi_des_biographies"," 5.64% 17.980 1 Modèle:Palette_Paradigme_de_programmation"," 4.63% 14.740 1 Modèle:Méta_palette_de_navigation"]},"scribunto":{"limitreport-timeusage":{"value":"0.028","limit":"10.000"},"limitreport-memusage":{"value":1273555,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-4d6wn","timestamp":"20241124025015","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"R\u00e9flexion (informatique)","url":"https:\/\/fr.wikipedia.org\/wiki\/R%C3%A9flexion_(informatique)","sameAs":"http:\/\/www.wikidata.org\/entity\/Q1056451","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q1056451","author":{"@type":"Organization","name":"Contributeurs aux projets Wikimedia"},"publisher":{"@type":"Organization","name":"Fondation Wikimedia, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2005-04-20T16:20:12Z","dateModified":"2024-07-20T19:06:36Z","headline":"capacit\u00e9 d'un programme informatique \u00e0 examiner le programme lui-m\u00eame"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10