[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/wiki.edu.vn\/en2fr\/wiki28\/magic-programmation-wikipedia\/#BlogPosting","mainEntityOfPage":"https:\/\/wiki.edu.vn\/en2fr\/wiki28\/magic-programmation-wikipedia\/","headline":"Magic (programmation) – Wikipedia wiki","name":"Magic (programmation) – Wikipedia wiki","description":"before-content-x4 Un article de Wikip\u00e9dia, l’encyclop\u00e9die libre after-content-x4 Dans le contexte de la programmation informatique, la magie est un terme","datePublished":"2018-06-26","dateModified":"2018-06-26","author":{"@type":"Person","@id":"https:\/\/wiki.edu.vn\/en2fr\/wiki28\/author\/lordneo\/#Person","name":"lordneo","url":"https:\/\/wiki.edu.vn\/en2fr\/wiki28\/author\/lordneo\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/c9645c498c9701c88b89b8537773dd7c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c9645c498c9701c88b89b8537773dd7c?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Enzyklop\u00e4die","logo":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/en.wikipedia.org\/wiki\/Special:CentralAutoLogin\/start?type=1x1","url":"https:\/\/en.wikipedia.org\/wiki\/Special:CentralAutoLogin\/start?type=1x1","height":"1","width":"1"},"url":"https:\/\/wiki.edu.vn\/en2fr\/wiki28\/magic-programmation-wikipedia\/","wordCount":2699,"articleBody":" (adsbygoogle = window.adsbygoogle || []).push({});before-content-x4Un article de Wikip\u00e9dia, l’encyclop\u00e9die libre (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Dans le contexte de la programmation informatique, la magie est un terme informel pour l’abstraction; Il est utilis\u00e9 pour d\u00e9crire le code qui g\u00e8re les t\u00e2ches complexes tout en cachant cette complexit\u00e9 pour pr\u00e9senter une interface simple. Le terme est quelque peu ironique et porte souvent de mauvaises connotations, ce qui implique que le v\u00e9ritable comportement du code n’est pas imm\u00e9diatement apparent. Par exemple, les m\u00e9canismes de typage et de fermeture polymorphes de Perl sont souvent appel\u00e9s \u00abmagie\u00bb. Le terme implique que la complexit\u00e9 cach\u00e9e est au moins en principe compr\u00e9hensible, contrairement \u00e0 la magie noire et \u00e0 la magie profonde (voir variantes), qui d\u00e9crivent des techniques arcaniques qui sont d\u00e9lib\u00e9r\u00e9ment cach\u00e9es ou extr\u00eamement difficiles \u00e0 comprendre. Cependant, le terme peut \u00e9galement \u00eatre appliqu\u00e9 de mani\u00e8re attachante, sugg\u00e9rant un “charme” sur le code. L’action de telles abstractions est d\u00e9crite comme \u00e9tant faite “automatiquement” , un portmanteau de “automatiquement” et “comme par magie”. (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Table of ContentsOpacit\u00e9 r\u00e9f\u00e9rentielle [ modifier ]] Non-orthogonalit\u00e9 [ modifier ]] Variantes [ modifier ]] Voir \u00e9galement [ modifier ]] Les r\u00e9f\u00e9rences [ modifier ]] Opacit\u00e9 r\u00e9f\u00e9rentielle [ modifier ]] La \u00abmagie\u00bb fait r\u00e9f\u00e9rence aux proc\u00e9dures qui effectuent des calculs bas\u00e9s sur des donn\u00e9es qui ne leur sont pas clairement fournies, en acc\u00e9dant \u00e0 d’autres modules, positions de m\u00e9moire ou variables globales qu’ils ne sont pas cens\u00e9s (en d’autres termes, ils ne sont pas r\u00e9f\u00e9rentialement transparents). Selon les mod\u00e8les d’architecture logicielle les plus r\u00e9cents, m\u00eame lors de l’utilisation de programmation structur\u00e9e, il est g\u00e9n\u00e9ralement pr\u00e9f\u00e9r\u00e9 que chaque fonction se comporte de la m\u00eame mani\u00e8re que les m\u00eames arguments y sont transmis, suivant ainsi l’un des principes de base de la programmation fonctionnelle. Lorsqu’une fonction enfreint cette r\u00e8gle, elle contiendrait souvent “la magie”. Un exemple simplifi\u00e9 de magie n\u00e9gative est le code suivant en PHP: fonction la magie () { mondial $ quelque part ; \u00e9cho $ quelque part ; } $ quelque part = vrai ; la magie (); Bien que le code ci-dessus soit clair et maintenable, s’il est vu dans un grand projet, il est souvent difficile de comprendre o\u00f9 la fonction la magie() obtient sa valeur de. Il est pr\u00e9f\u00e9r\u00e9 d’\u00e9crire ce code en utilisant le concept suivant: (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4fonction nomagique ( $ myvariable ) { \u00e9cho $ myvariable ; } $ quelque part = vrai ; nomagique ( $ quelque part )); Non-orthogonalit\u00e9 [ modifier ]] Tout SV [valeur scalaire] peut \u00eatre magique, c’est-\u00e0-dire qu’il a des caract\u00e9ristiques sp\u00e9ciales qu’un SV normal n’a pas. Cette d\u00e9finition de la magie ou magique Peut \u00eatre \u00e9tendu \u00e0 un type de donn\u00e9es, un fragment de code, un mot-cl\u00e9 ou une adresse machine qui a des propri\u00e9t\u00e9s non partag\u00e9es par des objets autrement identiques. Les propri\u00e9t\u00e9s magiques peuvent \u00eatre document\u00e9es ou non. Dans ISO C, des poign\u00e9es de fichiers (de type D\u00c9POSER ) ne peut pas \u00eatre copi\u00e9 en toute s\u00e9curit\u00e9 comme leurs adresses [2] Peut \u00eatre magique. Autrement dit, l’environnement d’ex\u00e9cution peut placer des poign\u00e9es de fichiers d’origine dans une plage d’adresses cod\u00e9s en dur et ne pas fournir un comportement de manche de fichier \u00e0 une copie cr\u00e9\u00e9e par l’utilisateur \u00e0 une autre adresse. Par cons\u00e9quent, les routines de la biblioth\u00e8que standard acceptent les pointeurs vers des poign\u00e9es de fichiers, de type D\u00c9POSER * , plut\u00f4t. Dans Perl 5, la d\u00e9claration alors que( ) attribue implicitement la ligne lue \u00e0 partir du fichier par \u00e0 la variable $ _ et applique le d\u00e9fini () fonctionner \u00e0 l’expression afin que toute lecture de cha\u00eene avec succ\u00e8s, m\u00eame \"0\" ou la cha\u00eene vide, \u00e9value comme vrai et continue le alors que () boucle. Cela n’arrive pas n’importe o\u00f9 ailleurs, ou pour alors que () avec toute autre expression de contr\u00f4le. [3] Dans un \u00e9mulateur, en particulier un en d\u00e9veloppement, les points d’appel du syst\u00e8me de la machine \u00e9mul\u00e9s peuvent \u00eatre magiques; Lorsqu’ils sont appel\u00e9s, l’\u00e9mulateur peut ex\u00e9cuter le code natif pour plus de commodit\u00e9, de vitesse ou d’acc\u00e8s au mat\u00e9riel physique et configurer le CPU et la m\u00e9moire imit\u00e9s comme s’il avait ex\u00e9cut\u00e9 le code d’origine.Par exemple, le APPEL D\u00e9claration de BBC Basic V traite les adresses d’appel syst\u00e8me de l’ACORN MOS comme par magie; Au lieu d’essayer de se ramifier pour armer le code \u00e0 ces adresses, il soul\u00e8ve une interruption logicielle dans RISC OS \u00e9quivalent \u00e0 l’appel syst\u00e8me. [4] [ Source non primaire n\u00e9cessaire ]] L’effet est d’imiter suffisamment les MOS de glands pour que les programmes de base 8 bits ne contiennent pas le langage d’assemblage pour s’ex\u00e9cuter sans modification. \u00c9galement dans BBC Basic, non seulement la variable num\u00e9rique @% Formatage d’impression de contr\u00f4le, il accepte l’attribution directe d’ANSI printf cha\u00eenes de format, normalement une erreur de d\u00e9calage de type. [4] En javascript, \u00e9valuation du Type de L’op\u00e9rateur r\u00e9ussit lorsque l’op\u00e9rande est un identifiant non d\u00e9clar\u00e9, ce qui entra\u00eenerait normalement un R\u00e9f\u00e9rence . Tout commentaire qui a un effet sur le code est magique. Les adresses d’E \/ S mapp\u00e9es de m\u00e9moire et les variables volatiles sont \u00e9galement magiques dans ce sens, bien que le terme ne soit pas normalement appliqu\u00e9. Variantes [ modifier ]] Magie profonde fait r\u00e9f\u00e9rence \u00e0 des techniques qui ne sont pas largement connues et peuvent \u00eatre d\u00e9lib\u00e9r\u00e9ment gard\u00e9es secr\u00e8tes. Le nombre de ces techniques a sans doute diminu\u00e9 ces derni\u00e8res ann\u00e9es, [ quand? ]] Surtout dans le domaine de la cryptographie o\u00f9 la s\u00e9curit\u00e9 par l’obscurit\u00e9 a \u00e9t\u00e9 de plus en plus abandonn\u00e9e en faveur de la s\u00e9curit\u00e9 gr\u00e2ce \u00e0 la conception qui permet et encourage souvent le contr\u00f4le du public. Le Fichier de jargon fait une distinction [5] entre magie profonde , qui fait r\u00e9f\u00e9rence au code bas\u00e9 sur les connaissances th\u00e9oriques \u00e9sot\u00e9riques, et magie noire , qui fait r\u00e9f\u00e9rence au code bas\u00e9 sur des techniques qui semblent fonctionner mais qui manquent d’une explication th\u00e9orique. Il d\u00e9finit \u00e9galement magie lourde , qui fait r\u00e9f\u00e9rence au code bas\u00e9 sur des subtilit\u00e9s obscures ou sans papiers de mat\u00e9riel ou de logiciel particulier. Le code source du noyau, interpr\u00e9t\u00e9 ce commentaire, trouv\u00e9 dans le code, pour sugg\u00e9rer qu’une sagesse th\u00e9orique profonde \u00e9tait expos\u00e9e dans l’extrait obscur, mais en fait, sa fonction “magique” d\u00e9pendait simplement d’une particularit\u00e9 de la fa\u00e7on dont le compilateur C a \u00e9t\u00e9 optimis\u00e9 pour Le mat\u00e9riel PDP-11 sur lequel la version 6 d’Unix a \u00e9t\u00e9 con\u00e7u pour s’ex\u00e9cuter. Voir \u00e9galement [ modifier ]] Les r\u00e9f\u00e9rences [ modifier ]] ^ “Perlguts – perldoc.perl.org” . 5 octobre 2014 . R\u00e9cup\u00e9r\u00e9 18 f\u00e9vrier 2015 . ^ Banahan, Mike; Brady, Declan; Doran, Mark (1991). “9.10.3 le stdio.h En t\u00eate de fichier”. Le livre C: avec la norme ANSI C . Le jeu d’instructions (2e \u00e9d.). Wokingham, Angleterre: Addison-Wesley Publishers. p. 234. ISBN 0-201-54433-4 . Il n’est pas s\u00fbr de copier ces objets dans le programme; Parfois, leurs adresses peuvent \u00eatre \u00abmagiques\u00bb. ^ “Perlop – perldoc.perl.org” . 7 septembre 2010 . R\u00e9cup\u00e9r\u00e9 17 f\u00e9vrier 2011 . ^ un b “27. Mots-cl\u00e9s” (PDF) . Manuel de r\u00e9f\u00e9rence de base de la BBC (1er \u00e9d.). Cambridge, Angleterre: Acorn Ordinateurs. Octobre 1992. pp. 229, 349. ISBN 1-85250-103-0 . R\u00e9cup\u00e9r\u00e9 9 mai 2007 . [ dead link]] ^ “Magie profonde” . Fichier de jargon . (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4"},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/wiki.edu.vn\/en2fr\/wiki28\/#breadcrumbitem","name":"Enzyklop\u00e4die"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/wiki.edu.vn\/en2fr\/wiki28\/magic-programmation-wikipedia\/#breadcrumbitem","name":"Magic (programmation) – Wikipedia wiki"}}]}]