{"id":33886,"date":"2019-10-31T21:55:15","date_gmt":"2019-10-31T18:55:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/matryoshka-si-slojnaya-sistema-yazyka-programmy\/"},"modified":"2019-10-31T21:55:15","modified_gmt":"2019-10-31T18:55:15","slug":"matryoshka-si-slojnaya-sistema-yazyka-programmy","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","title":{"rendered":"Matryoshka C. Syst\u00e8me linguistique de la programmation","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Essayons d'imaginer la chimie sans le tableau p\u00e9riodique de Mendele\u00efev (1869). Combien d'\u00e9l\u00e9ments fallait-il garder en t\u00eate, et dans un ordre al\u00e9atoire... (\u00c0 l'\u00e9poque - 60.)<\/p>\n<p>Pour cela, il suffit de penser \u00e0 un ou plusieurs langages de programmation. Les m\u00eames sentiments, le m\u00eame d\u00e9sordre cr\u00e9atif. <\/p>\n<p>Et maintenant, nous pouvons ressentir les sentiments des chimistes du XIXe si\u00e8cle, lorsqu'on leur a propos\u00e9 tous leurs connaissances, et un peu plus, dans un seul tableau p\u00e9riodique. <\/p>\n<p><img decoding=\"async\" alt=\"Matryoshka C. Syst\u00e8me linguistique de la programmation\" src=\"\/wp-content\/uploads\/2019\/05\/15ce1538e152aad5fcd683fe7fcd96c0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nLe livre \u00ab Matriochka C. Syst\u00e8me en couches du langage de programmation \u00bb pr\u00e9sente toutes les unit\u00e9s du langage C comme sur un plateau. Cela permet de les organiser, de corriger les informations obsol\u00e8tes et m\u00eame de pr\u00e9ciser la notion m\u00eame de programme. <\/p>\n<p>Aujourd'hui, les informations sur la programmation ont besoin d'\u00eatre syst\u00e9matis\u00e9es encore plus que les \u00e9l\u00e9ments chimiques il y a 150 ans. <\/p>\n<p>La premi\u00e8re n\u00e9cessit\u00e9 - l'enseignement. Mendele\u00efev a commenc\u00e9 \u00e0 cr\u00e9er son syst\u00e8me lorsqu'il a \u00e9t\u00e9 confront\u00e9 \u00e0 la question : par quel \u00e9l\u00e9ment commencer \u00e0 donner des cours : O, H, N, He, Au... Pour lui, c'\u00e9tait plus facile - il enseignait la chimie aux meilleurs - \u00e9tudiants de l'universit\u00e9 de Saint-P\u00e9tersbourg. Alors que la programmation est d\u00e9j\u00e0 enseign\u00e9e \u00e0 l'\u00e9cole et va bient\u00f4t commencer \u00e0 la maternelle. <\/p>\n<p>La deuxi\u00e8me n\u00e9cessit\u00e9 - l'approche scientifique. Gr\u00e2ce au tableau p\u00e9riodique, de nouveaux \u00e9l\u00e9ments ont \u00e9t\u00e9 d\u00e9couverts et des informations sur les anciens ont \u00e9t\u00e9 corrig\u00e9es. Elle a aid\u00e9 \u00e0 cr\u00e9er le mod\u00e8le de l'atome (1911). Et ainsi de suite. <\/p>\n<p>La troisi\u00e8me n\u00e9cessit\u00e9 - pr\u00e9ciser la notion de programme. <\/p>\n<p>La programmation moderne est coinc\u00e9e d'un pied dans les ann\u00e9es 50 du XXe si\u00e8cle. \u00c0 l'\u00e9poque, les programmes \u00e9taient simples, tandis que les machines et les langages machines \u00e9taient complexes, donc tout tournait autour des machines et des langages. <\/p>\n<p>Maintenant, c'est l'inverse : les programmes sont complexes et primaires, les langages sont simples et secondaires. Cela s'appelle l'approche appliqu\u00e9e, qui semble famili\u00e8re \u00e0 tous. Mais les \u00e9tudiants et les d\u00e9veloppeurs continuent d'\u00eatre convaincus que tout reste inchang\u00e9. <\/p>\n<p>Cela nous ram\u00e8ne \u00e0 la premi\u00e8re conf\u00e9rence du Privat-Docteur Mendele\u00efev. Que dire aux \u00e9tudiants de premi\u00e8re ann\u00e9e ? O\u00f9 est la v\u00e9rit\u00e9 ? Voici la question. <\/p>\n<p>Sa r\u00e9ponse est propos\u00e9e par le livre \u00ab Matriochka C. Syst\u00e8me en couches du langage de programmation \u00bb. En effet, il s'adresse non seulement aux \u00e9tudiants, mais aussi aux programmeurs exp\u00e9riment\u00e9s, car c'est eux qui doivent chercher la v\u00e9rit\u00e9 et renverser leur vision du monde, c'est-\u00e0-dire nous. <\/p>\n<p>Voici un r\u00e9sum\u00e9 du livre. <\/p>\n<h2>1. Introduction<\/h2>\n<p>\nEn 1969, le langage C a \u00e9t\u00e9 cr\u00e9\u00e9, devenant ainsi un langage fondamental de la programmation et le demeurant depuis 50 ans. Pourquoi est-ce le cas ? Tout d'abord, parce que C est un <i>langage pratique<\/i> , qui donne un aspect <i>humain<\/i> au programme plut\u00f4t que <i>machine<\/i>. Cet accomplissement a \u00e9t\u00e9 renforc\u00e9 par les langages de la famille C : C++, JavaScript, PHP, Java, C# et d'autres. Deuxi\u00e8mement, c'est un langage court et \u00e9l\u00e9gant. <\/p>\n<p>Cependant, le langage C lui-m\u00eame est souvent confondu avec l'assembleur, compliquant ainsi et d\u00e9formant sa perception. L'autre extr\u00eame est l'imposition d'une certaine \u00ab philosophie \u00bb au langage : proc\u00e9durale, orient\u00e9e objet, fonctionnelle, compil\u00e9e, interpr\u00e9t\u00e9e, typ\u00e9e, etc. Cela ajoute des \u00e9motions, mais n'aide pas \u00e0 mieux d\u00e9crire le langage. <\/p>\n<p>La v\u00e9rit\u00e9 se situe au milieu, en ce qui concerne le langage C \u2014 strictement au milieu entre la perception philosophique et machine. <\/p>\n<p>Le langage C n'est pas autonome, il ob\u00e9it \u00e0 un discours \u00e9crit ordinaire, et en m\u00eame temps, il contr\u00f4le lui-m\u00eame le langage assembleur. Cette position est d\u00e9crite par <i>le mod\u00e8le de discours du programme<\/i>, selon lequel le programme est divis\u00e9 en trois formes subordonn\u00e9es : discours, code, commande. Le langage C r\u00e9pond \u00e0 la deuxi\u00e8me forme, le code. <\/p>\n<p>En d\u00e9finissant la place du langage dans le programme, on peut organiser les informations le concernant, ce qui rend <i>le syst\u00e8me de couches du langage du programme<\/i>, repr\u00e9sentant le langage C \u00e0 la mani\u00e8re du syst\u00e8me p\u00e9riodique de Mend\u00e9l\u00e9iev \u2014 sur une seule page. <\/p>\n<p>Ce syst\u00e8me est construit en tenant compte de <i>la communaut\u00e9 des langages appliqu\u00e9s<\/i>, d\u00e9coulant de leur subordination discursive. Un ensemble d'unit\u00e9s de la Matriochka C permet de d\u00e9crire et de comparer diff\u00e9rents langages, cr\u00e9ant une s\u00e9rie de Matriochkas : C++, PHP, JavaScript, C#, MySQL, Python, etc. Il est juste et appropri\u00e9 que diff\u00e9rents langages soient d\u00e9crits par les unit\u00e9s du langage fondamental. <\/p>\n<h2>2. CHAPITRE 1. Mod\u00e8le de discours du programme. C compr\u00e9hensible<\/h2>\n<p>\nDans le premier chapitre, le <i>mod\u00e8le de discours du programme<\/i>est pr\u00e9sent\u00e9, refl\u00e9tant l'approche appliqu\u00e9e. Selon celui-ci, le programme a trois formes successives \u00e9videntes : <\/p>\n<ol>\n<li>discours \u2014 le discours direct du programmeur qui r\u00e9sout un probl\u00e8me, <\/li>\n<li>code \u2014 la codification de la solution sous une forme math\u00e9matique en langage C (ou tout autre)<\/li>\n<li>et commande \u2014 les instructions machine imm\u00e9diates. <\/li>\n<\/ol>\n<p>\nLe mod\u00e8le de discours explique pourquoi C est un langage simple et compr\u00e9hensible. C est construit \u00e0 l'image et \u00e0 la ressemblance de notre discours humain habituel. <\/p>\n<p>Le premier type de programme est le discours direct du programmeur. Le discours correspond \u00e0 la pens\u00e9e humaine. Les programmeurs d\u00e9butants \u00e9crivent des programmes en utilisant d'abord leur langue maternelle, puis traduisent progressivement leurs actions en langage de code. C'est selon ce mod\u00e8le que le langage C a \u00e9t\u00e9 cr\u00e9\u00e9. <\/p>\n<p>Les raisonnements du programmeur, exprim\u00e9s verbalement, se transforment en une forme cod\u00e9e et num\u00e9rique. Cette transformation doit \u00eatre appel\u00e9e <i>r\u00e9flexion<\/i>, car le discours et le code ont une nature commune (r\u00e9flexion \u2014 naissance \u2014 genre). C'est assez \u00e9vident si l'on compare la forme verbale (\u00e0 gauche) et la forme cod\u00e9e (\u00e0 droite) du programme. <\/p>\n<p><img decoding=\"async\" alt=\"Matryoshka C. Syst\u00e8me linguistique de la programmation\" src=\"\/wp-content\/uploads\/2019\/05\/e88d13730660ebac1d661bb2d34a33d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl est int\u00e9ressant de noter que la r\u00e9flexion se produit tr\u00e8s simplement \u2014 avec seulement deux types d'expressions. <\/p>\n<p>Cependant, la description moderne du langage C (de 1978) ne contient pas de liste suffisante de noms ni pour d\u00e9crire le langage en g\u00e9n\u00e9ral, ni pour la t\u00e2che de r\u00e9flexion en particulier. Par cons\u00e9quent, nous devons nous engager dans la cr\u00e9ativit\u00e9 et introduire ces noms.<\/p>\n<p>Le choix des mots doit \u00eatre pr\u00e9cis et clair. Pour cela, une approche particuli\u00e8re a \u00e9t\u00e9 n\u00e9cessaire, r\u00e9sum\u00e9e comme suit : une utilisation stricte de la langue maternelle. Pour les Anglais, ce serait l'anglais, mais nous ne sommes pas des Anglais. Donc, utilisons ce que nous avons et essayons de parler en fran\u00e7ais. <\/p>\n<p>La r\u00e9flexion est r\u00e9alis\u00e9e par deux types d'expressions : <\/p>\n<ol>\n<li><i>calcul <\/i>(Cc) \u2014 refl\u00e8te le changement des propri\u00e9t\u00e9s d'un objet. La propri\u00e9t\u00e9 d'un objet est exprim\u00e9e par un nombre, donc une action sur la propri\u00e9t\u00e9 est une action sur le nombre \u2014 une op\u00e9ration. <\/li>\n<li><i>subordination <\/i>(Sc) \u2014 refl\u00e8te le changement de l'ordre des actions. Le mod\u00e8le de Sc est la proposition complexe avec subordination, donc la plupart des types de Sc commencent par des conjonctions subordonn\u00e9es comme \u00absi\u00bb, \u00absinon\u00bb, \u00abtant que\u00bb, \u00abpour\u00bb. D'autres types de Sc les compl\u00e8tent. <\/li>\n<\/ol>\n<p>\n\u00c0 propos, pouvez-vous croire qu'il n'y a pas de nom pour les expressions de calcul dans la description de C \u2014 elles sont simplement appel\u00e9es \u00abexpressions\u00bb ? Apr\u00e8s \u00e7a, il n'est pas surprenant qu'il n'y ait pas de nom et de regroupement pour le genre subordination, et en g\u00e9n\u00e9ral, un manque de noms, de d\u00e9finitions et d'abstractions. Tout cela parce que le c\u00e9l\u00e8bre K\/R (\u00abLe langage C\u00bb, Kernighan\/Ritchie, 1978) n'est pas une description, mais un guide d'application du langage. <\/p>\n<p>Cependant, avoir une description du langage serait tout de m\u00eame souhaitable. C'est pourquoi il est propos\u00e9 <i>le syst\u00e8me de couches du langage du programme<\/i>. <\/p>\n<h2>3. CHAPITRE 2. Syst\u00e8me en couches. C bref<\/h2>\n<p>\nToute description doit \u00eatre pr\u00e9cise et aussi concise que possible. Dans le cas du langage de programmation, une description frontale est difficile. <\/p>\n<p>Nous avons un programme. Il est constitu\u00e9 de modules. Les modules sont compos\u00e9s de sous-programmes et de s\u00e9lections (structure). Les sous-programmes se composent d'expressions distinctes : d\u00e9clarations, calculs, sous-ordres. Il existe au total dix types de sous-ordres. Les sous-ordres relient des sous-niveaux et des sous-programmes. Il y a aussi plusieurs d\u00e9clarations. D'ailleurs, les d\u00e9clarations ne sont pas seulement incluses dans les sous-programmes et sous-niveaux, mais \u00e9galement dans les modules et les s\u00e9lections. La plupart des expressions sont compos\u00e9es de mots, si difficiles \u00e0 d\u00e9crire que l'on se contente g\u00e9n\u00e9ralement de les donner sous forme de deux listes : mots de base et mots d\u00e9riv\u00e9s, avec lesquels il faudra se familiariser tout au long de l'apprentissage et de l'utilisation de la langue. Ajoutons \u00e0 cela la ponctuation et une s\u00e9rie d'autres expressions. <\/p>\n<p>Dans cette pr\u00e9sentation, il est difficile de comprendre qui se tenait sur qui. <\/p>\n<p>Une approche hi\u00e9rarchique directe de la description de la langue serait excessivement complexe. La recherche de chemins d\u00e9tourn\u00e9s conduit \u00e0 une description de la langue bas\u00e9e sur sa nature verbale et son aspect commandant. Ainsi est n\u00e9e le Syst\u00e8me Couche, qui co\u00efncide en partie avec le Syst\u00e8me P\u00e9riodique de Mendele\u00efev, qui est \u00e9galement <i>couche<\/i>. Il s'est av\u00e9r\u00e9, 42 ans apr\u00e8s sa publication (1869), que la p\u00e9riodicit\u00e9 du syst\u00e8me est li\u00e9e aux <i>couches <\/i>\u00e9lectroniques (1911, mod\u00e8le de l'atome de Bohr-Rutherford). De plus, le Syst\u00e8me Couche et le Syst\u00e8me P\u00e9riodique partagent la disposition tabulaire de toutes les unit\u00e9s sur une seule page. <\/p>\n<p>La description des unit\u00e9s de langue est concise \u2014 seulement 10 types d'expressions et 8 types d'autres unit\u00e9s, et elle est \u00e0 la fois substantielle et visuelle. Bien que peu famili\u00e8re pour une premi\u00e8re rencontre. <\/p>\n<p>Les unit\u00e9s de langue sont divis\u00e9es en 6 niveaux :<\/p>\n<ol>\n<li>ordres \u2014 lignes du tableau<\/li>\n<li>sections \u2014 groupes particuliers de types (parties de la premi\u00e8re ligne)<\/li>\n<li>types \u2014 cellules (niveau principal de division)<\/li>\n<li>sous-types \u2014 s\u00e9parateurs des types (niveau rare)<\/li>\n<li>types \u2014 formules d'unit\u00e9s en bas de la cellule ou s\u00e9par\u00e9ment<\/li>\n<li>exemples \u2014 les unit\u00e9s elles-m\u00eames (uniquement pour les mots)<\/li>\n<\/ol>\n<p>\nLes exemples de mots sont d\u00e9crits par <i>le dictionnaire<\/i> \u2014 un sous-syst\u00e8me distinct compos\u00e9 des m\u00eames six niveaux. <\/p>\n<p>L'\u00e9l\u00e9ment verbal de la langue C est assez \u00e9vident, bien qu'il m\u00e9rite tout de m\u00eame d'\u00eatre d\u00e9crit. En revanche, la partie commande de la langue est li\u00e9e \u00e0 la gestion de la compilation, durant laquelle un troisi\u00e8me type de programme est cr\u00e9\u00e9 \u2014 le programme de commande. Ici, nous touchons au c\u00f4t\u00e9 le plus captivant de la langue C \u2014 sa beaut\u00e9. <\/p>\n<h2>4. CHAPITRES SUIVANTS. Le beau C<\/h2>\n<p>\nLe langage C est \u00e0 la base de la programmation moderne. Pourquoi ? Tout d'abord, en raison de sa plus grande ad\u00e9quation avec le langage naturel. Ensuite, parce qu'il a contourn\u00e9 magnifiquement les limitations du traitement num\u00e9rique par machine.<\/p>\n<p>Qu'a propos\u00e9 le C ? Image et type. <\/p>\n<p>Le mot \u00ab image \u00bb est la traduction du mot anglais \u00ab type \u00bb, qui vient du grec \u00ab prototype \u00bb \u2014 \u00ab mod\u00e8le \u00bb. En russe, le mot \u00ab \u0442\u0438\u043f \u00bb ne transmet pas la rigueur du concept exprim\u00e9, en plus il se m\u00e9lange avec la signification fonctionnelle \u00ab \u0432\u0438\u0434 \u00bb. <\/p>\n<p>\u00c0 l'origine, l'image r\u00e9solvait un probl\u00e8me purement machine de calcul, puis elle est devenue la piste de d\u00e9collage pour la naissance des langages orient\u00e9s objet. <\/p>\n<p>Le type r\u00e9solvait imm\u00e9diatement plusieurs t\u00e2ches \u2014 tant machines qu'appliqu\u00e9es. C'est pourquoi l'examen commencera par l'image unidimensionnelle et passera au type multit\u00e2che. <\/p>\n<p>Une des caract\u00e9ristiques d\u00e9sagr\u00e9ables de la programmation historique est que la plupart des concepts, y compris les fondamentaux, sont donn\u00e9s sans d\u00e9finitions. \u00ab Le langage de programmation (nom de rivi\u00e8res) a des types de chiffres entiers et flottants... \u00bb \u2014 et on passe \u00e0 autre chose. Qu'est-ce qu'un \u00ab type \u00bb (image) \u2014 la d\u00e9finition n'est pas n\u00e9cessaire, car les auteurs eux-m\u00eames ne le comprennent pas compl\u00e8tement et le balayent \u00ab pour clarifier \u00bb. S'ils sont accul\u00e9s au mur, ils donneront une d\u00e9finition floue et inutile. Cela aide beaucoup \u00e0 se cacher derri\u00e8re des mots \u00e9trangers : pour les auteurs russes \u2014 derri\u00e8re les mots anglais (type), pour les Anglais \u2014 derri\u00e8re les mots fran\u00e7ais (subroutine), grecs (polymorphisme), latins (encapsulation) ou leurs combinaisons (polymorphisme ad-hoc). <\/p>\n<p>Mais ce n'est pas notre destin. Notre choix \u2014 des d\u00e9finitions avec les yeux grands ouverts dans un russe clair. <\/p>\n<h3>Image<\/h3>\n<p>\n<i>Image<\/i> \u2014 c'est un nom prototype de la grandeur, d\u00e9terminant 1) les propri\u00e9t\u00e9s propres de la grandeur et 2) le choix d'op\u00e9rations pour la grandeur. <\/p>\n<p>Au mot \u00ab type \u00bb (vue) correspond la premi\u00e8re partie de la d\u00e9finition : \u00ab propri\u00e9t\u00e9s propres de la grandeur \u00bb. Mais le sens principal de l'image r\u00e9side dans la deuxi\u00e8me partie : \u00ab choix d'op\u00e9rations pour les grandeurs \u00bb.<\/p>\n<p>Le point de d\u00e9part pour introduire l'image dans le langage C est un calcul courant, par exemple, l'op\u00e9ration d'addition. <\/p>\n<p><i>Math\u00e9matiques<\/i> sur papier, \u00e9crites \u00e0 la main ou typ\u00e9es, ne font pas de distinction particuli\u00e8re entre les types de chiffres, les consid\u00e9rant g\u00e9n\u00e9ralement comme r\u00e9els. Par cons\u00e9quent, leurs op\u00e9rations sont univoques.<\/p>\n<p><i>Machine<\/i> Les math\u00e9matiques distinguent strictement les nombres en entiers et en d\u00e9cimaux. Diff\u00e9rents types de nombres sont stock\u00e9s diff\u00e9remment en m\u00e9moire et sont trait\u00e9s par diff\u00e9rentes instructions du processeur. Par exemple, les instructions d'addition des entiers et des d\u00e9cimaux repr\u00e9sentent deux instructions diff\u00e9rentes, correspondant \u00e0 deux n\u0153uds diff\u00e9rents du processeur. En revanche, l'instruction d'addition d'un entier et d'un d\u00e9cimal n'existe pas. <\/p>\n<p><i>Appliqu\u00e9e<\/i> Les math\u00e9matiques, c'est-\u00e0-dire le langage C, distinguent les types de nombres mais unifient les op\u00e9rations : l'addition pour les entiers et\/ou les d\u00e9cimaux s'exprime par un seul signe d'op\u00e9ration.<\/p>\n<p>Une d\u00e9finition claire du concept de forme permet de parler de mani\u00e8re pr\u00e9cise de deux autres concepts : <i>quantit\u00e9 <\/i>et <i>op\u00e9ration<\/i>. <\/p>\n<h3>Quantit\u00e9 et op\u00e9ration<\/h3>\n<p>\n<i>Quantit\u00e9 <\/i> \u2014 le nombre trait\u00e9.<\/p>\n<p><i>Op\u00e9ration<\/i> \u2014 le traitement des valeurs des quantit\u00e9s d'origine (arguments) pour obtenir le nombre final (le r\u00e9sultat). <\/p>\n<p>Quantit\u00e9 et op\u00e9ration sont interd\u00e9pendantes. Chaque op\u00e9ration est une quantit\u00e9, car elle a un r\u00e9sultat num\u00e9rique. Et chaque quantit\u00e9 est le r\u00e9sultat du transfert de valeur vers le registre du processeur\/de ce dernier, c'est-\u00e0-dire \u2014 le r\u00e9sultat de l'op\u00e9ration. Malgr\u00e9 cette interd\u00e9pendance, il est cependant essentiel de pouvoir les d\u00e9crire s\u00e9par\u00e9ment, m\u00eame si cela implique la r\u00e9p\u00e9tition d'un m\u00eame mot dans diff\u00e9rentes sections du dictionnaire, ce qui se produit dans le ma3. <\/p>\n<p>L'approche machine divisait tous les nombres utilis\u00e9s par le programmeur en <i>des commandes <\/i>et <i>donn\u00e9es<\/i>. Auparavant, les deux \u00e9taient effectivement des nombres, par exemple, les instructions \u00e9taient \u00e9crites sous forme de codes num\u00e9riques. Cependant, dans les langages appliqu\u00e9s, les instructions ont cess\u00e9 d'\u00eatre des nombres et sont devenues <i>mots <\/i>et <i>signes d'action<\/i>. Seules les \u00ab donn\u00e9es \u00bb sont rest\u00e9es des nombres, mais continuer \u00e0 les d\u00e9signer ainsi est absurde, car en passant de la perspective machine \u00e0 celle math\u00e9matique, les nombres sont des quantit\u00e9s qui se divisent en donn\u00e9es d'origine (<i>donn\u00e9es<\/i>) et en r\u00e9sultats (<i>recherch\u00e9s<\/i>). \u00ab Donn\u00e9e inconnue \u00bb semblerait ridicule. <\/p>\n<p>Les instructions se sont \u00e9galement divis\u00e9es en deux types d'actions : les actions math\u00e9matiques et les instructions auxiliaires. Les actions math\u00e9matiques sont des op\u00e9rations. Nous aborderons les instructions auxiliaires plus tard. <\/p>\n<p>Dans les langages C, les op\u00e9rations math\u00e9matiques univoques ou singuli\u00e8res, que ce soit sur papier ou en machine, deviennent presque syst\u00e9matiquement multiples. <\/p>\n<p>Les op\u00e9rations multiples \u2013 plusieurs op\u00e9rations homonymes avec des formes d'arguments diff\u00e9rentes et des actions proches par leur sens. <\/p>\n<p>Une op\u00e9ration enti\u00e8re correspond \u00e0 des arguments entiers, et une op\u00e9ration d\u00e9cimale \u00e0 des arguments d\u00e9cimaux. Cette diff\u00e9rence est particuli\u00e8rement \u00e9vidente lors de l'op\u00e9ration de division, lorsque l'expression 1\/2 donne un r\u00e9sultat de 0, et non 0,5. Un tel enregistrement ne respecte pas les r\u00e8gles de l'arithm\u00e9tique traditionnelle, mais le langage C ne cherche pas \u00e0 les suivre (contrairement \u00e0 Fortran) \u2014 il joue selon ses propres <i>r\u00e8gles.<\/i> Dans le cas d'un m\u00e9lange de nombres entiers et d\u00e9cimaux, la seule m\u00e9thode correcte est<\/p>\n<p>la conversion des valeurs des arguments <i>\u2014 une transformation s\u00e9lective de la valeur d'une forme \u00e0 une autre. En effet, lors de l'addition d'un nombre entier et d'un nombre d\u00e9cimal, le r\u00e9sultat est un nombre d\u00e9cimal, donc la forme de l'op\u00e9ration<\/i> implique <i>l'op\u00e9ration de transformation de l'argument entier en valeur d\u00e9cimale. <\/i>Une s\u00e9rie d'op\u00e9rations reste <\/p>\n<p>uniques <i>. De telles op\u00e9rations ne sont d\u00e9finies que pour un seul type d'arguments : le reste de la division \u2014 pour les arguments entiers, et l'alignement (op\u00e9rations bit \u00e0 bit) \u2014 pour les entiers naturels. Ma3 indique la multiplicit\u00e9 des op\u00e9rations avec des signes (#^) en pr\u00e9cisant les formes pour lesquelles l'op\u00e9ration est d\u00e9finie. C'est une propri\u00e9t\u00e9 importante, mais souvent n\u00e9glig\u00e9e, de chaque op\u00e9ration.<\/i>, et <i>Toutes les fonctions sont des op\u00e9rations uniques arbitraires. L'exception est faite pour les op\u00e9rateurs \u2014<\/i>des fonctions sans parenth\u00e8ses <\/p>\n<p>, int\u00e9gr\u00e9es dans le langage (op\u00e9rations de base). <i>L'assistance<\/i>\u2014 une action accessoire \u00e0 l'op\u00e9ration. <\/p>\n<h3>Si l'on consid\u00e8re l'op\u00e9ration comme l'action principale, on peut en distinguer deux accessoires qui la soutiennent et en diff\u00e8rent. Ce sont 1) la gestion de la variable et 2) la soumission. Cette action est appel\u00e9e<\/h3>\n<p>\n<i>Si l'on consid\u00e8re l'op\u00e9ration comme l'action principale, on peut en distinguer deux accessoires qui la soutiennent et en diff\u00e8rent. Ce sont 1) la gestion de la variable et 2) la soumission. Cette action est appel\u00e9e <\/i> assistance.<\/p>\n<p>Il convient ici de faire une pause et de parler s\u00e9par\u00e9ment des traductions russes des manuels de programmation. Dans le texte K\/R, un nouveau mot a \u00e9t\u00e9 introduit pour d\u00e9crire les actions <i>statement<\/i>.<\/p>\n<p>qui a tent\u00e9 de s\u00e9parer les concepts de la commande machine en diff\u00e9rentes actions : 1) op\u00e9ration, 2) d\u00e9claration et 3) soumission (appel\u00e9e \u00ab constructions de contr\u00f4le \u00bb). Cette tentative a \u00e9t\u00e9 enterr\u00e9e par les traducteurs russes, qui ont remplac\u00e9 \u00ab expression \u00bb par \u00ab op\u00e9rateur \u00bb, ce qui : <i>est devenu un synonyme du mot machine \u00ab commande \u00bb, <\/i>s'est av\u00e9r\u00e9 \u00eatre un synonyme de l'expression \u00ab signe d'action \u00bb,<\/p>\n<ol>\n<li>et a \u00e9galement acquis un nombre illimit\u00e9 de significations additionnelles. En d'autres termes, cela s'est transform\u00e9 en quelque chose ressemblant \u00e0 l'article anglais \u00ab euh... \u00bb. <\/li>\n<li>Consid\u00e9rons les actions accessoires, ou<\/li>\n<li>les assistances. <\/li>\n<\/ol>\n<p>\nGestion de la variable <i>Gestion de la variable<\/i>.<\/p>\n<h4><i>Gestion de la variable<\/i> <\/h4>\n<p>\n<i>Gestion de la variable<\/i> (UP) \u2014 cr\u00e9ation\/suppression de cellules de variable. <br \/>\nL'UP se produit implicitement lors de la d\u00e9claration d'une variable, qui est d\u00e9j\u00e0 \u00e9crite pour une autre raison \u2014 pour indiquer la dimension de la grandeur. Seul un type est g\u00e9r\u00e9 explicitement. <i>de variables additionnelles<\/i> \u00e0 l'aide des fonctions malloc() et free(). <\/p>\n<p>Il convient de noter que les actions implicites sont plus faciles \u00e0 \u00e9crire, car elles ne n\u00e9cessitent rien de plus \u00e0 \u00e9crire, mais elles sont plus difficiles \u00e0 comprendre \u2014 elles sont plus difficiles \u00e0 prendre en compte et \u00e0 interpr\u00e9ter. <\/p>\n<h4><i>Subordination<\/i><\/h4>\n<p>\n<i>Subordination <\/i> \u2014 connexion\/d\u00e9connexion de sections de couche. <\/p>\n<p>Le langage C a propos\u00e9 une m\u00e9thode de contr\u00f4le de l'ordre des actions diff\u00e9rente de celle de l'assembleur \u2014 la subordination. Elle refl\u00e8te et d\u00e9veloppe la phrase subordonn\u00e9e, avec une s\u00e9paration explicite entre la partie principale (phrase de subordination) et la partie subordonn\u00e9e (sections de sous-niveau\/sous-programme). <\/p>\n<p>Tant la d\u00e9claration que la subordination sont enti\u00e8rement bas\u00e9es sur le concept de <i>couche<\/i>. <\/p>\n<h3>Une couche<\/h3>\n<p>\n<i>Une couche <\/i> \u2014 est un ensemble d'expressions limit\u00e9 et unidimensionnel. <\/p>\n<p>Une couche a explicitement et implicitement pris en charge plusieurs t\u00e2ches : <\/p>\n<ol>\n<li>organisation du programme,<\/li>\n<li>limitation de la visibilit\u00e9 des noms (implicitement),<\/li>\n<li>gestion des variables (cellules m\u00e9moire) (implicitement),<\/li>\n<li>d\u00e9finition des sections subordonn\u00e9es pour la subordination,<\/li>\n<li>d\u00e9finition des fonctions et choix, et autres. <\/li>\n<\/ol>\n<p>\nDans les langages machine, il n'y avait pas de concept de couche, donc cela n'est pas apparu dans le C\/R, et s'il n'y avait pas quelque chose l\u00e0-bas \u2014 l'introduire dans les livres ult\u00e9rieurs serait une h\u00e9r\u00e9sie et un libertinage. Par cons\u00e9quent, le concept de couche n'a pas du tout \u00e9merg\u00e9, bien qu'il soit extr\u00eamement utile et tout \u00e0 fait \u00e9vident. <\/p>\n<p>Sans couche, il est impossible d'expliquer de mani\u00e8re concise et claire de nombreuses actions et r\u00e8gles du programme. Par exemple, pourquoi un simple goto, comme trois kopecks, est mauvais, alors qu'une boucle while compliqu\u00e9e est bonne. On peut seulement s'en prendre \u00e0 son impuissance, comme le faisait Dijkstra (\u00ab la qualification des programmeurs est une fonction inverse de la fr\u00e9quence d'apparition des instructions goto dans leurs programmes \u00bb. En r\u00e9sum\u00e9, seuls des idiots utilisent goto. Niveau de justification \u2014 Dieu.) Cependant, cela n'est pas si terrible si vos livres ne doivent rien expliquer du tout, mais comme nous l'avons d\u00e9j\u00e0 dit, ce n'est pas notre destin. <\/p>\n<p>En fait, on peut supposer que Dennis Ritchie a laiss\u00e9 le mot-cl\u00e9 goto comme un moyen de rechercher un certain concept non nomm\u00e9, car il n'y avait ni n\u00e9cessit\u00e9 ni beaut\u00e9 dans l'expression goto. Cependant, il y avait un besoin d'une explication simple et claire des nouveaux principes du langage, que Ritchie ne voulait pas fournir, et qui reposent pr\u00e9cis\u00e9ment sur ce concept. <i>couche<\/i>. <\/p>\n<h3>D\u00e9rive<\/h3>\n<p>\n<i>D\u00e9rive <\/i> \u2014 modification des propri\u00e9t\u00e9s habituelles du nouveau nom. <\/p>\n<p>La d\u00e9rive la plus importante est li\u00e9e aux propri\u00e9t\u00e9s de couche du programme et est d\u00e9crite par un seul mot : \u00ab static \u00bb, qui a des significations diff\u00e9rentes dans chacun des types de couches. <\/p>\n<h2>5. DERNIER CHAPITRE. Univers des langages appliqu\u00e9s<\/h2>\n<p>\nLes langages appliqu\u00e9s \u2014 ce sont des <i>langages figuratifs <\/i>poss\u00e9dant une image, \u00ab typ\u00e9s \u00bb. Ils reposent sur l'utilisation explicite ou implicite d'une image. Et ici encore, on observe une contradiction : une image explicite \u2014 plus compr\u00e9hensible, mais moins pratique, et vice versa. <\/p>\n<p><img decoding=\"async\" alt=\"Matryoshka C. Syst\u00e8me linguistique de la programmation\" src=\"\/wp-content\/uploads\/2019\/05\/7d0fd49d678736a023f471b54847be7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>(Le balisage du tableau n'a pas encore \u00e9t\u00e9 fourni, donc le tableau est donn\u00e9 sous forme d'image.)<\/i><\/p>\n<p>Apr\u00e8s C, le d\u00e9veloppement des langages appliqu\u00e9s a suivi la voie de l'augmentation de leur figurativit\u00e9. Le plus important pour comprendre ce haut niveau de figurativit\u00e9 est le descendant direct de C \u2014 le langage C++. Il d\u00e9veloppe l'id\u00e9e d'une s\u00e9lection arbitraire d'op\u00e9rations pour des valeurs et la concr\u00e9tise sur la base de l'expression C de s\u00e9lection, qui re\u00e7oit un nouveau nom \u2014 objet. Cependant, C++ n'est pas aussi concis et expressif que C, en raison du surchargement de nouveaux types de s\u00e9lection et des r\u00e8gles qui y sont associ\u00e9es. \u00c0 propos, parlons de la \u00ab surcharge \u00bb. <\/p>\n<h3>Surcharge et polymorphisme <\/h3>\n<p>\nLe mot \u00ab surcharge \u00bb (overload) \u2014 un terme obsol\u00e8te du langage machine, d\u00e9signant la cr\u00e9ation <i>d'op\u00e9rations multiples<\/i>. <\/p>\n<p>Pour les programmeurs machine (syst\u00e8me) <i>la multiplicit\u00e9 <\/i>d'op\u00e9rations pouvait \u00eatre irritante : \u00ab Que signifie ce signe (+) : addition de nombres entiers, addition de nombres d\u00e9cimaux ou simplement d\u00e9calage ?! \u00c0 notre \u00e9poque, on n'\u00e9crivait pas cela ! \u00bb D'o\u00f9 la connotation n\u00e9gative du mot choisi (\u00ab surench\u00e8re \u00bb, \u00ab ras-le-bol \u00bb). Pour le programmeur appliqu\u00e9, les op\u00e9rations multiples sont la pierre angulaire, la principale r\u00e9alisation et l'h\u00e9ritage du langage C, si naturelles qu'elles passent souvent inaper\u00e7ues. <\/p>\n<p>Dans le langage C++ <i>la multiplicit\u00e9<\/i> elle s'est propag\u00e9e non seulement aux op\u00e9rations initiales, mais aussi aux fonctions \u2014 tant individuelles que regroup\u00e9es en classes \u2014 m\u00e9thodes. Avec de multiples m\u00e9thodes est apparue la possibilit\u00e9 de les red\u00e9finir dans des classes \u00e9tendues, qui a \u00e9t\u00e9 vagues nomm\u00e9e \u00ab polymorphisme \u00bb. L'association du polymorphisme et de la surcharge a donn\u00e9 un m\u00e9lange explosif, qui s'est divis\u00e9 en deux polymorphismes : \u00ab v\u00e9ritable \u00bb et \u00ab ad-hoc \u00bb. On ne peut comprendre cela qu'en opposition aux noms attribu\u00e9s. Des noms \u00e9trangers pavent la route vers ad. <\/p>\n<p>Une d\u00e9claration de type \u00ab surcharge \u00bb serait mieux exprim\u00e9e par le mot <i>red\u00e9claration <\/i> \u2014 ajoutant une d\u00e9claration de la m\u00eame fonction avec des arguments d'un autre type. <\/p>\n<p>Une d\u00e9claration de type \u00ab polymorphisme \u00bb devrait plut\u00f4t \u00eatre appel\u00e9e <i>red\u00e9claration<\/i> \u2014 une d\u00e9claration qui recouvre dans une nouvelle couche d'extension la fonction du m\u00eame nom avec des arguments du m\u00eame type. <\/p>\n<p>Il sera alors facile de comprendre que les m\u00e9thodes ayant le m\u00eame nom mais des types diff\u00e9rents (arguments) \u2014 <i>sont red\u00e9clar\u00e9es<\/i>, alors qu'un m\u00eame type \u2014 <i>est red\u00e9clar\u00e9<\/i>. <\/p>\n<p>Les mots russes r\u00e9solvent. <\/p>\n<h3>Piste d'atterrissage<\/h3>\n<p>\nL'examen des concepts des langages de haut niveau confirme l'importance d'une d\u00e9finition claire des concepts fondamentaux. Avec un C correctement d\u00e9crit, l'apprentissage des langages de haut niveau sera facile et agr\u00e9able. <\/p>\n<p>C'est particuli\u00e8rement important pour <i>les langages de haut niveau implicites<\/i> (PHP, JavaScript). Pour eux, l'importance des objets (types compos\u00e9s) devient encore plus \u00e9lev\u00e9e que dans C++, mais le concept m\u00eame de type devient implicite et difficile \u00e0 saisir. En termes de commodit\u00e9, ils sont devenus plus simples, mais en termes de compr\u00e9hension \u2014 plus complexes. <\/p>\n<p>C'est pourquoi il est pr\u00e9f\u00e9rable de commencer l'apprentissage des langages de programmation par le langage C et de progresser ensuite dans l'ordre d'apparition des langages de la famille C. <\/p>\n<p>Il en va de m\u00eame pour la description des langages. Diff\u00e9rents langages ont un ensemble de types d'unit\u00e9s co\u00efncidant, ou moins, qu'en C. Le nombre de types et d'exemples peut varier dans les deux sens : C++ a plus de types que C, tandis que JavaScript en a moins. <\/p>\n<p>Un langage m\u00e9ritant une mention sp\u00e9ciale est MySQL. \u00c0 premi\u00e8re vue \u2014 rien \u00e0 voir, mais il se d\u00e9crit tr\u00e8s bien avec Matriochka, et la familiarit\u00e9 avec lui devient plus rapide et plus simple. Ce qui est important, compte tenu de son importance pour le web \u2014 la route principale de la programmation moderne. Et l\u00e0 o\u00f9 il y a MySQL, il y a d'autres SQL. Eh bien, et tous les Fortrans-Pascals-Pythons se d\u00e9crivent \u00e9galement avec Matriochka, d\u00e8s que l'on s'y met. <\/p>\n<p>Nous nous attendons \u00e0 de grandes r\u00e9alisations : une description pratique du langage C et une description uniforme des langages qui le suivent. \u00ab Nos objectifs sont clairs, les t\u00e2ches sont d\u00e9finies. Au travail, camarades ! (Applaudissements enthousiastes et prolong\u00e9s, se transformant en ovation. Tout le monde se l\u00e8ve.) \u00bb <\/p>\n<p>Vos avis seront accueillis avec un grand soin, votre aide pour cr\u00e9er le site des matriochkas sera accueillie avec une immense gratitude. Des informations plus compl\u00e8tes sur le livre sont disponibles sur un site habilement cach\u00e9 dans la matriochka C.<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/452328\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u0438\u043c\u0438\u044e \u0431\u0435\u0437 \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041c\u0435\u043d\u0434\u0435\u043b\u0435\u0435\u0432\u0430 (1869). \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0433\u043e\u043b\u043e\u0432\u0435, \u043f\u0440\u0438\u0447\u0451\u043c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435\u2026 (\u0422\u043e\u0433\u0434\u0430 \u2014 60.) \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0440\u0430\u0437\u0443 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u0435 \u0436\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0430, \u0442\u043e\u0442 \u0436\u0435 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0435\u0441\u043f\u043e\u0440\u044f\u0434\u043e\u043a. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0436\u0438\u0442\u044c \u0447\u0443\u0432\u0441\u0442\u0432\u0430 \u0445\u0438\u043c\u0438\u043a\u043e\u0432 XIX \u0432\u0435\u043a\u0430, \u043a\u043e\u0433\u0434\u0430 \u0438\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0432\u0441\u0435 \u0438\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25550,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-33886","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u0438\u043c\u0438\u044e \u0431\u0435\u0437 \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041c\u0435\u043d\u0434\u0435\u043b\u0435\u0435\u0432\u0430 (1869).\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u0430\u0442\u0440\u0451\u0448\u043a\u0430 \u0421\u0438. \u0421\u043b\u043e\u0439\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u0438\u043c\u0438\u044e \u0431\u0435\u0437 \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041c\u0435\u043d\u0434\u0435\u043b\u0435\u0435\u0432\u0430 (1869).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:55:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:55:15+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Matriochka C. Syst\u00e8me de couches du langage de programme | ProHoster","description":"Essayons d\u2019imaginer la chimie sans le tableau p\u00e9riodique de Mendele\u00efev (1869).","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u0430\u0442\u0440\u0451\u0448\u043a\u0430 \u0421\u0438. \u0421\u043b\u043e\u0439\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b | ProHoster","og:description":"\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u0438\u043c\u0438\u044e \u0431\u0435\u0437 \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041c\u0435\u043d\u0434\u0435\u043b\u0435\u0435\u0432\u0430 (1869).","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:55:15+00:00","article:modified_time":"2019-10-31T18:55:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33886","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 17:06:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:31:23","updated":"2026-01-21 17:06:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/33886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=33886"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/33886\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/25550"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=33886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=33886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=33886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}