{"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\/de\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","title":{"rendered":"Matroschka C. Schichtsystem der Programmiersprache","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Versuchen wir, uns die Chemie ohne das Periodensystem von Mendelejew (1869) vorzustellen. Wie viele Elemente musste man im Kopf behalten, und das in willk\u00fcrlicher Reihenfolge... (Damals \u2013 60.)<\/p>\n<p>Dazu gen\u00fcgt es, an eine oder mehrere Programmiersprachen gleichzeitig zu denken. Die gleichen Gef\u00fchle, das gleiche kreative Durcheinander. <\/p>\n<p>Und jetzt k\u00f6nnen wir die Gef\u00fchle von Chemikern des 19. Jahrhunderts nachempfinden, als ihnen all ihr Wissen und etwas dar\u00fcber hinaus in einem Periodensystem angeboten wurde. <\/p>\n<p><img decoding=\"async\" alt=\"Matroschka C. Schichtsystem der Programmiersprache\" 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 \/>\nDas Buch \"Matroschka C. Schichtsystem der Programmiersprache\" pr\u00e4sentiert alle Einheiten der Sprache C wie auf der Handfl\u00e4che. Dies erm\u00f6glicht es, sie zu ordnen, veraltete Informationen zu korrigieren und sogar das Konzept eines Programms zu pr\u00e4zisieren. <\/p>\n<p>Heute ben\u00f6tigt das Wissensgebiet der Programmierung noch dringlicher eine Systematisierung als die chemischen Elemente vor 150 Jahren. <\/p>\n<p>Die erste Notwendigkeit \u2013 Lehre. Mendelejew begann mit dem Aufbau seines Systems, als er vor der Frage stand, mit welchem Element er die Vorlesungen beginnen soll: O, H, N, He, Au... Dabei war es f\u00fcr ihn einfacher \u2013 er lehrte Chemie den Besten \u2013 den Studenten der Universit\u00e4t St. Petersburg. Programmierung wird jedoch bereits in der Schule unterrichtet und bald auch im Kindergarten. <\/p>\n<p>Die zweite Notwendigkeit \u2013 wissenschaftlicher Ansatz. Mit Hilfe des Periodensystems wurden neue Elemente entdeckt und korrigierte Informationen \u00fcber alte Elemente gefunden. Es half bei der Erstellung des Atommodells (1911). Und so weiter. <\/p>\n<p>Die dritte Notwendigkeit \u2013 Pr\u00e4zisierung des Begriffs \"Programm\". <\/p>\n<p>Die moderne Programmierung ist mit einem Fu\u00df in den 50er Jahren des 20. Jahrhunderts stecken geblieben. Damals waren Programme einfach, w\u00e4hrend Maschinen und Maschinenlanguages kompliziert waren, weshalb sich alles um Maschinen und Sprachen drehte. <\/p>\n<p>Jetzt ist alles umgekehrt: Die Programme sind kompliziert und prim\u00e4r, die Sprachen sind einfach und sekund\u00e4r. Das nennt man den anwendungsorientierten Ansatz, der allen scheinbar bekannt ist. Aber Studenten und Entwickler werden weiterhin \u00fcberzeugt, dass alles beim Alten geblieben ist. <\/p>\n<p>Das bringt uns zur\u00fcck zur ersten Vorlesung des Privatdozenten Mendelejew. Was soll man den Erstsemestern sagen? Wo ist die Wahrheit? Das ist die Frage. <\/p>\n<p>Das Buch \"Matroschka C. Schichtsystem der Programmiersprache\" bietet eine Antwort darauf. Es richtet sich dabei nicht nur an Studenten, sondern auch an erfahrene Programmierer, denn gerade sie, also wir, m\u00fcssen die Wahrheit suchen und die weltanschaulichen Konzepte umkehren. <\/p>\n<p>Im Folgenden finden Sie eine kurze Zusammenfassung des Buches. <\/p>\n<h2>1. Einf\u00fchrung<\/h2>\n<p>\nIm Jahr 1969 wurde die Programmiersprache C geschaffen, die zu einer grundlegenden Programmiersprache wurde und dies seit 50 Jahren bleibt. Warum ist das so? Zuerst einmal, weil C eine <i>anwendungsorientierte<\/i> Sprache ist, die dem Programm ein <i>menschliches<\/i> Erscheinungsbild anstelle von <i>maschinenhaften<\/i>. Diese Errungenschaft haben Sprachen der C-Familie wie C++, JavaScript, PHP, Java, C# und andere gefestigt. Zweitens ist es eine kurze und elegante Sprache. <\/p>\n<p>Der originale C wird jedoch oft mit Maschinen-Assembler verwechselt, was sein Verst\u00e4ndnis kompliziert und verzerrt. Eine weitere Extremit\u00e4t ist die auferlegte \u201ePhilosophie\u201c der Sprache: prozedural, objektorientiert, funktional, kompilierbar, interpretierbar, typisiert und so weiter. Das bringt Emotionen mit sich, hilft aber nicht, die Sprache besser zu beschreiben. <\/p>\n<p>Die Wahrheit liegt in der Mitte, und f\u00fcr die Sprache C ist es streng in der Mitte zwischen philosophischem und maschinellem Verst\u00e4ndnis. <\/p>\n<p>Die Sprache C ist nicht autonom, sie unterliegt der normalen Schriftsprache und gleichzeitig steuert sie die Assemblersprache. Diese Position beschreibt <i>Das Sprachmodell eines Programms<\/i>, wonach ein Programm in drei untergeordnete Arten unterteilt wird: sprachlich, kodiert und befehlend. Die Sprache C ist f\u00fcr die zweite, die kodierte Art verantwortlich. <\/p>\n<p>Wenn man den Platz der Sprache im Programm definiert, kann man Informationen \u00fcber sie ordnen, was die <i>Schichtsystem der Programmiersprache<\/i>, das die Sprache C im Geiste des Periodensystems von Mendelejew auf einer Seite repr\u00e4sentiert. <\/p>\n<p>Das System wurde unter Ber\u00fccksichtigung der <i>Gemeinsamkeit anwendungsorientierter Sprachen<\/i>, die aus ihrer sprachlichen Untergeordnetheit resultiert. Ein Satz von Matroschka-Einheiten in C erm\u00f6glicht es, verschiedene Sprachen zu beschreiben und zu vergleichen, wodurch eine Reihe von Matroschkas entsteht: C++, PHP, JavaScript, C#, MySQL, Python und so weiter. Es ist w\u00fcrdig und richtig, dass verschiedene Sprachen mit Einheiten der grundlegenden Sprache beschrieben werden. <\/p>\n<h2>2. KAPITEL 1. Sprachmodell eines Programms. Verst\u00e4ndliches C<\/h2>\n<p>\nIm ersten Kapitel wird das <i>Sprachmodell eines Programms<\/i>, das einen anwendungsorientierten Ansatz widerspiegelt, vorgestellt. Laut diesem hat das Programm drei offensichtliche aufeinanderfolgende Arten: <\/p>\n<ol>\n<li>sprachlich \u2013 die direkte Rede des Programmierers, der ein Problem l\u00f6st, <\/li>\n<li>kodiert \u2013 die Kodierung der L\u00f6sung in mathematischer Form in der Sprache C (oder einer anderen)<\/li>\n<li>und befehlend \u2013 die unmittelbaren maschinellen Befehle. <\/li>\n<\/ol>\n<p>\nDas Sprachmodell erkl\u00e4rt, warum C eine einfache und verst\u00e4ndliche Sprache ist. C ist nach dem Vorbild und Gleichnis unserer gewohnten menschlichen Sprache aufgebaut. <\/p>\n<p>Die erste Art von Programmen ist die direkte Sprache des Programmierers. Die Sprache entspricht dem menschlichen Denken. Mit Hilfe der Sprache schreiben Anf\u00e4ngerprogramme \u2013 zun\u00e4chst auf Russisch, dann Schritt f\u00fcr Schritt \u00fcbersetzen sie die Aktionen in die Programmiersprache. Und genau nach diesem Muster wurde die Programmiersprache C geschaffen. <\/p>\n<p>Die Schlussfolgerungen des Programmierers, die in Sprache ausgedr\u00fcckt sind, werden in einen codebasierten numerischen Ausdruck umgewandelt. Diese Umwandlung sollte man <i>Reflexion<\/i>, nennen, da Sprache und Code eine gemeinsame Natur haben (Reflexion \u2013 Geburt \u2013 Herkunft). Dies ist offensichtlich, wenn man die sprachliche (links) und die codebasierte (rechts) Form des Programms vergleicht. <\/p>\n<p><img decoding=\"async\" alt=\"Matroschka C. Schichtsystem der Programmiersprache\" src=\"\/wp-content\/uploads\/2019\/05\/e88d13730660ebac1d661bb2d34a33d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs ist interessant, dass die Reflexion sehr einfach erfolgt \u2013 nur mit zwei Arten von Ausdr\u00fccken. <\/p>\n<p>Allerdings enth\u00e4lt die moderne Beschreibung der Programmiersprache C (von 1978) keine ausreichende Liste von Bezeichnungen, weder zur Beschreibung der Sprache im Allgemeinen noch f\u00fcr die spezifische Aufgabe der Reflexion. Daher sind wir gezwungen, kreativ zu werden und diese Bezeichnungen einzuf\u00fchren.<\/p>\n<p>Die Wortwahl muss pr\u00e4zise und klar sein. Daf\u00fcr ben\u00f6tigte es einen besonderen Ansatz, der kurz so formuliert werden kann \u2013 strikte Verwendung der eigenen Sprache. F\u00fcr die Engl\u00e4nder w\u00e4re das Englisch, aber wir sind keine Engl\u00e4nder. Also nutzen wir, was wir haben, und bem\u00fchen uns, Russisch zu sprechen. <\/p>\n<p>Die Reflexion erfolgt durch zwei Arten von Ausdr\u00fccken: <\/p>\n<ol>\n<li><i>Berechnung <\/i>(B) \u2013 spiegelt die Ver\u00e4nderung der Eigenschaften eines Gegenstandes wider. Die Eigenschaft eines Gegenstandes wird durch eine Zahl ausgedr\u00fcckt, wobei die Handlung \u00fcber die Eigenschaft \u2013 also die Handlung \u00fcber die Zahl \u2013 eine Operation ist. <\/li>\n<li><i>Unterordnung <\/i>(U) \u2013 spiegelt die Ver\u00e4nderung der Reihenfolge der Aktionen wider. Das Vorbild von U ist der komplexe Satz in der Sprache, daher beginnen die meisten Arten von U mit den unterordnenden Konjunktionen \u201ewenn\u201c, \u201eansonsten\u201c, \u201esolange\u201c, \u201ef\u00fcr\u201c. Andere Arten von U erg\u00e4nzen diese. <\/li>\n<\/ol>\n<p>\n\u00dcbrigens, k\u00f6nnen Sie sich vorstellen, dass in der Beschreibung von C kein Begriff f\u00fcr Berechnung existiert \u2013 sie werden einfach \u201eAusdr\u00fccke\u201c genannt? Nach diesem wird auch das Fehlen einer Bezeichnung und Zusammenfassung f\u00fcr die Art der Unterordnung nicht \u00fcberraschen, ebenso wie die allgemeine Knappheit in Bezug auf Bezeichnungen, Definitionen und Verallgemeinerungen. Das liegt daran, dass das ber\u00fchmte K\/R (\u201eDie Programmiersprache C\u201c, Kernighan\/Ritchie, 1978) keine Beschreibung ist, sondern ein Handbuch zur Anwendung der Sprache. <\/p>\n<p>Dennoch w\u00e4re es w\u00fcnschenswert, eine Beschreibung der Sprache zu haben. Deshalb schl\u00e4gt er vor, <i>Schichtsystem der Programmiersprache<\/i>. <\/p>\n<h2>3. KAPITEL 2. Schichtsystem. Kurzbeschreibung von C<\/h2>\n<p>\nJede Beschreibung muss pr\u00e4zise und m\u00f6glichst kurz sein. Bei der Programmiersprache ist eine knappe Beschreibung schwierig. <\/p>\n<p>Hier haben wir ein Programm. Es besteht aus Modulen. Die Module setzen sich aus Unterprogrammen und Sammlungen (structure) zusammen. Die Unterprogramme bestehen aus einzelnen Ausdr\u00fccken: Deklarationen, Berechnungen, Abh\u00e4ngigkeiten. Es gibt insgesamt zehn Arten von Abh\u00e4ngigkeiten. Abh\u00e4ngigkeiten verbinden Unterebenen und Unterprogramme. Auch Deklarationen gibt es mehrere. Allerdings werden Deklarationen nicht nur in Unterprogramme und Unterebenen, sondern auch in Module und Sammlungen integriert. Die meisten Ausdr\u00fccke bestehen aus W\u00f6rtern, die so schwierig zu beschreiben sind, dass man sie normalerweise einfach in zwei Listen gibt \u2014 Stamm- und abgeleitete W\u00f6rter, mit denen man im Laufe des Lernens und der Anwendung der Sprache vertraut werden muss. F\u00fcgen wir dazu die Satzzeichen und eine Reihe weiterer Ausdr\u00fccke hinzu. <\/p>\n<p>In dieser Darstellung ist es schwierig zu verstehen, wer auf wem steht. <\/p>\n<p>Ein direkter hierarchischer Ansatz zur Beschreibung der Sprache w\u00e4re \u00fcberm\u00e4\u00dfig kompliziert. Die Suche nach Umwegen f\u00fchrt zu einer Beschreibung der Sprache basierend auf ihrer sprachlichen Natur und der kommandierenden Seite. So entstand das Schichtensystem, das teilweise mit dem Periodensystem von Mendelejew \u00fcbereinstimmt, das ebenfalls <i>schichtig<\/i>ist. Wie sich 42 Jahre nach ihrer Ver\u00f6ffentlichung (1869) herausstellte, steht die Periodizit\u00e4t des Systems in Beziehung zu den elektrischen <i>Schichten <\/i>(1911, das Bohr-Rutherford-Modell des Atoms). Auch das Schichten- und das Periodensystem verbindet die tabellarische Darstellung aller Einheiten auf einer Seite. <\/p>\n<p>Die Beschreibung der Spracheinheiten wird knapp \u2014 nur 10 Arten von Ausdr\u00fccken und 8 Arten von anderen Einheiten sowie informativ und anschaulich. Obwohl sie f\u00fcr den ersten Kontakt ungewohnt ist. <\/p>\n<p>Die Spracheinheiten sind in 6 Ebenen unterteilt:<\/p>\n<ol>\n<li>Ordnungen \u2014 Zeilen der Tabelle<\/li>\n<li>Abteilungen \u2014 besondere Gruppen von Arten (Teile der ersten Zeile)<\/li>\n<li>Arten \u2014 Zellen (Hauptebene der Teilung)<\/li>\n<li>Oberarten \u2014 Trennzeichen der Arten (seltene Ebene)<\/li>\n<li>Arten \u2014 Formeln der Einheiten am unteren Rand der Zelle oder separat<\/li>\n<li>Muster \u2014 die eigentlichen Einheiten (nur f\u00fcr W\u00f6rter)<\/li>\n<\/ol>\n<p>\nDie Muster der W\u00f6rter beschreibt <i>das W\u00f6rterbuch<\/i> \u2014 ein separates Teilsystem, das aus denselben sechs Ebenen besteht. <\/p>\n<p>Der sprachliche Bestandteil der Sprache C ist offensichtlich, obwohl er dennoch eine Beschreibung verdient. Die kommandierende Seite der Sprache h\u00e4ngt jedoch mit der Steuerung der Kompilierung zusammen, w\u00e4hrend der drittes Programm \u2014 das Befehlsprogramm \u2014 erstellt wird. Hier n\u00e4hern wir uns dem spannendsten Aspekt der Sprache C \u2014 der Sch\u00f6nheit. <\/p>\n<h2>4. FOLGENDEN KAPITEL. Sch\u00f6nes C<\/h2>\n<p>\nDie Programmiersprache C bildet die Grundlage der modernen Programmierung. Warum? Erstens, weil sie am besten der Sprache entspricht. Zweitens, weil sie elegant die Einschr\u00e4nkungen der maschinellen Zahlenverarbeitung umgeht.<\/p>\n<p>Was genau hat C vorgeschlagen? Typ und Struktur. <\/p>\n<p>Das Wort \u201eTyp\u201c ist die \u00dcbersetzung des englischen Wortes \u201etype\u201c, das vom griechischen \u201eprototyp\u201c \u2014 \u201eUrbild\u201c \u2014 stammt. Im Russischen vermittelt das Wort \u201e\u0442\u0438\u043f\u201c nicht die fundamentale Bedeutung des ausgedr\u00fcckten Begriffs, und vermischt sich zudem mit der Funktion des Dienstwerts \u201eSorte\u201c. <\/p>\n<p>Urspr\u00fcnglich l\u00f6ste der Typ ein rein maschinelles Problem der Berechnung, bevor er zur Startrampe f\u00fcr die Entwicklung objektorientierter Sprachen wurde. <\/p>\n<p>Die Struktur l\u00f6ste sofort mehrere Aufgaben \u2013 sowohl maschinelle als auch anwendungsbezogene. Daher beginnt die Betrachtung mit dem eindimensionalen Typ und wechselt zur multidimensionalen Struktur. <\/p>\n<p>Eine der unangenehmen Eigenschaften der historischen Programmierung besteht darin, dass die meisten Konzepte, einschlie\u00dflich der grundlegenden, ohne Definitionen vermittelt werden. \u201eDie Programmiersprache (Name der Fl\u00fcsse) hat einen ganzzahligen und einen Gleitkommatyp ...\u201c \u2013 und weiter ging's. Was ist ein \u201eTyp\u201c (Bild) \u2014 eine Definition ist nicht n\u00f6tig, denn die Autoren selbst verstehen es nicht ganz und werden \u201ezur Klarheit\u201c schwammig. Wenn sie an die Wand gedr\u00e4ngt werden, geben sie eine vage und nutzlose Definition. Es hilft sehr, sich hinter fremdsprachigen W\u00f6rtern zu verstecken: f\u00fcr russische Autoren \u2013 hinter englischen (Typ), f\u00fcr Engl\u00e4nder \u2013 hinter franz\u00f6sischen (Subroutine), griechischen (Polymorphismus), lateinischen (Kapselung) oder deren Kombinationen (ad-hoc Polymorphismus). <\/p>\n<p>Aber das ist nicht unser Schicksal. Unsere Wahl sind Definitionen mit einer klaren Haltung in reinem Russisch. <\/p>\n<h3>Image<\/h3>\n<p>\n<i>Image<\/i> \u2013 das ist der prototypische Name einer Gr\u00f6\u00dfe, der 1) die eigenen Eigenschaften der Gr\u00f6\u00dfe und 2) die Auswahl von Operationen zur Gr\u00f6\u00dfe bestimmt. <\/p>\n<p>Dem Wort \u201eTyp\u201c (Sorte) entspricht der erste Teil der Definition: \u201eeigene Eigenschaften der Gr\u00f6\u00dfe\u201c. Aber die Hauptbedeutung des Typs liegt im zweiten Teil: \u201eAuswahl von Operationen zu Gr\u00f6\u00dfen\u201c.<\/p>\n<p>Der Ausgangspunkt f\u00fcr die Einf\u00fchrung des Typs in der Programmiersprache C ist eine gew\u00f6hnliche Berechnung, beispielsweise die Addition. <\/p>\n<p><i>Papier<\/i> Mathematik, die von Hand geschrieben oder gedruckt wird, macht keinen gro\u00dfen Unterschied zwischen den Arten von Zahlen und betrachtet sie in der Regel als reell. Daher sind ihre Verarbeitungsoperationen eindeutig.<\/p>\n<p><i>Maschinell<\/i> Die Mathematik unterscheidet strikt zwischen ganzen und gebrochenen Zahlen. Verschiedene Arten von Zahlen werden unterschiedlich im Speicher abgelegt und von verschiedenen Prozessorbefehlen verarbeitet. Zum Beispiel sind die Befehle zum Addieren von ganzen und gebrochenen Zahlen zwei verschiedene Befehle, die zwei verschiedenen Knoten des Prozessors entsprechen. Daf\u00fcr gibt es keinen Befehl, der das Addieren eines ganzen und eines gebrochenen Arguments kombiniert. <\/p>\n<p><i>Angewandte<\/i> Mathematik, das hei\u00dft die Programmiersprache C, trennt Arten von Zahlen, vereint jedoch die Operationen: Die Addition f\u00fcr ganze und\/oder gebrochene Zahlen wird durch ein einziges Aktionszeichen dargestellt.<\/p>\n<p>Die klare Definition des Begriffs Gr\u00f6\u00dfe erm\u00f6glicht es, eindeutig von zwei anderen Begriffen zu sprechen: <i>Gr\u00f6\u00dfe <\/i>und <i>Operation<\/i>. <\/p>\n<h3>Gr\u00f6\u00dfe und Operation<\/h3>\n<p>\n<i>Gr\u00f6\u00dfe <\/i> \u2013 die verarbeitete Zahl.<\/p>\n<p><i>Operation<\/i> \u2013 die Verarbeitung der Werte der urspr\u00fcnglichen Gr\u00f6\u00dfen (Argumente) zur Erzielung der Endzahl (Ergebnis). <\/p>\n<p>Gr\u00f6\u00dfe und Operation stehen in Beziehung zueinander. Jede Operation ist eine Gr\u00f6\u00dfe, da sie ein numerisches Ergebnis hat. Jede Gr\u00f6\u00dfe ist das Ergebnis der \u00dcbertragung des Wertes in das Register des Prozessors\/ausschlie\u00dflich f\u00fcr den Prozessor, das hei\u00dft \u2013 das Ergebnis der Operation. Trotz dieser Beziehung bleibt die M\u00f6glichkeit ihrer getrennten Beschreibung das Hauptmerkmal, auch wenn das gleiche Wort in verschiedenen Abteilungen des W\u00f6rterbuchs wiederholt wird, wie es in ma3 der Fall ist. <\/p>\n<p>Der Maschinenansatz teilte alle vom Programmierer verwendeten Zahlen in <i>Befehle <\/i>und <i>Daten<\/i>. Fr\u00fchere Zahlen beider Arten waren tats\u00e4chlich Zahlen, zum Beispiel wurden Befehle durch numerische Codes geschrieben. In den Anwendungssprachen h\u00f6rten die Befehle jedoch auf, Zahlen zu sein und wurden zu <i>W\u00f6rtern <\/i>und <i>Aktionszeichen<\/i>. Nur die \"Daten\" blieben Zahlen, aber es w\u00e4re absurd, sie weiterhin so zu nennen, denn aus mathematischer Sicht sind Zahlen Gr\u00f6\u00dfen, die in urspr\u00fcngliche (<i>Daten<\/i>) und endg\u00fcltige (<i>gesuchte<\/i>). \"Unbekannte gegebene\" w\u00e4re ein dummer Ausdruck. <\/p>\n<p>Die Befehle wurden ebenfalls in zwei Arten von Aktionen unterteilt: mathematische und Hilfsaktionen. Mathematische Aktionen sind Operationen. Auf die Hilfsaktionen kommen wir sp\u00e4ter zur\u00fcck. <\/p>\n<p>In der Programmiersprache C werden gewohnte papierbasierte und maschinell eindeutige, oder einzelne, mathematische Operationen nahezu durchweg zu mehrfachen. <\/p>\n<p>Mehrfache Operationen sind mehrere gleichnamige Operationen mit unterschiedlichen Formen von Argumenten und verschiedenen, sinngem\u00e4\u00dfen Aktionen. <\/p>\n<p>Zu ganzen Argumenten geh\u00f6rt eine ganze Operation, zu rationalen - eine rationale. Dieser Unterschied wird besonders bei der Division deutlich, wenn der Ausdruck 1\/2 das Ergebnis 0 und nicht 0,5 ergibt. Diese Darstellung erf\u00fcllt nicht die Regeln der Papiermathematik, aber die Programmiersprache C strebt auch nicht an, sie einzuhalten (im Gegensatz zu Fortran) - sie spielt nach ihren eigenen <i>Anwendungsregeln.<\/i> Im Falle der Vermischung von ganzen und rationalen Zahlen wird einzig und allein das richtige<\/p>\n<p>Anpassen der Argumentwerte aktiviert <i>\u2013 eine Auswahlumwandlung des Wertes von einer Form in eine andere. Tats\u00e4chlich ist das Ergebnis bei der Addition einer ganzen und einer rationalen Zahl rational, daher passt das Bild der Operation<\/i> die <i>Umwandlung einer ganzen Zahl in einen rationalen Wert an. <\/i>Eine Reihe von Operationen bleibt nicht <\/p>\n<p>multiple <i>einzelne<\/i>, und <i>. Solche Operationen sind nur f\u00fcr eine Art von Argumenten definiert: der Rest einer Division \u2013 ganze Argumente, Bitoperationen \u2013 nat\u00fcrliche ganze Zahlen. Die Ma3 zeigt die Mehrzahl der Operationen mit den Zeichen (#^) an, die die Bilder angeben, f\u00fcr die die Operation definiert ist. Dies ist eine wichtige, aber zuvor \u00fcbersehene Eigenschaft jeder Operation.<\/i>Alle Funktionen sind willk\u00fcrliche Einzeloperationen. Eine Ausnahme bilden Operatoren - <\/p>\n<p>klausellose Funktionen <i>, die in die Sprache integriert sind (urspr\u00fcngliche Operationen).<\/i>Unterst\u00fctzung <\/p>\n<h3>\u2013 eine begleitende Handlung zur Operation.<\/h3>\n<p>\n<i>\u2013 eine begleitende Handlung zur Operation. <\/i> Betrachtet man eine Operation als die Hauptaktion, so lassen sich zwei begleitende Handlungen unterscheiden, die die Operation gew\u00e4hrleisten und sich von ihr unterscheiden. Das sind 1) die Steuerung einer Variablen und 2) die Unterordnung. Diese Handlung wird als<\/p>\n<p>Unterst\u00fctzung bezeichnet. <i>Hier muss kurz innegehalten und speziell \u00fcber die russischen \u00dcbersetzungen von Programmierhandb\u00fcchern gesprochen werden. Im Text von K\/R wurde ein neues Wort eingef\u00fchrt,<\/i>.<\/p>\n<p>statement <i>f\u00fcr die Aufzeichnung von Aktionen, welches versuchte, die Begriffe des Maschinenbefehls in verschiedene Handlungen zu unterteilen: 1) Operation, 2) Deklaration und 3) Unterordnung (genannt \u201eKontrollkonstruktionen\u201c). Dieser Versuch wurde von russischen \u00dcbersetzern begraben, die \u201eAusdruck\u201c durch das Wort \u201eOperator\u201c ersetzten, das: <\/i>zu einem Synonym f\u00fcr das Maschinenwort \u201eBefehl\u201c geworden ist,<\/p>\n<ol>\n<li>zu einem Synonym f\u00fcr den Ausdruck \u201eAktionszeichen\u201c wurde, <\/li>\n<li>und auch eine unbegrenzte Anzahl zus\u00e4tzlicher Bedeutungen erhielt. Es verwandelte sich also in eine Art englischen Artikel \u201e\u00e4h\u2026\u201c .<\/li>\n<li>Betrachten wir die begleitenden Handlungen oder <\/li>\n<\/ol>\n<p>\nUnterst\u00fctzung. <i>Steuerung einer Variablen<\/i>.<\/p>\n<h4><i>Variablenverwaltung<\/i> <\/h4>\n<p>\n<i>Variablenverwaltung<\/i> (UP) \u2014 Erstellung\/Entfernung von Variablenzellen. <br \/>\nDie UP erfolgt implizit bei der Deklaration einer Variablen, die auch aus einem anderen Grund geschrieben wird \u2014 zur Angabe der Art der Menge. Nur eine Art wird explizit verwaltet. <i>zus\u00e4tzliche Variablen<\/i> mittels der Funktionen malloc() und free(). <\/p>\n<p>Es ist zu beachten, dass implizite Aktionen beim Schreiben bequemer sind, da sie \u00fcberhaupt nichts erfordern, aber schwieriger zu verstehen sind \u2014 sie sind schwieriger zu ber\u00fccksichtigen und zu interpretieren. <\/p>\n<h4><i>Unterordnung<\/i><\/h4>\n<p>\n<i>Unterordnung <\/i> \u2014 Anschluss\/Trennung von Schichtenabschnitten. <\/p>\n<p>Die Programmiersprache C bietet eine von Assembler abweichende, anwendungsbezogene M\u00f6glichkeit zur Steuerung der Reihenfolge von Aktionen \u2014 Unterordnung. Sie spiegelt einen komplexen Satz mit einer klaren Trennung zwischen dem Hauptteil (Unterordnungsanweisung) und dem Nebenteil (Abschnitte Unterlevel\/Subprogramm) wider. <\/p>\n<p>Sowohl die Deklaration als auch die Unterordnung basieren vollst\u00e4ndig auf dem Begriff <i>Schicht<\/i>. <\/p>\n<h3>Schicht<\/h3>\n<p>\n<i>Schicht <\/i> \u2014 ist eine begrenzte, einstufige Auswahl von Ausdr\u00fccken. <\/p>\n<p>Die Schicht hat sowohl explizit als auch implizit mehrere Aufgaben \u00fcbernommen: <\/p>\n<ol>\n<li>Ordnung des Programms,<\/li>\n<li>Einschr\u00e4nkung der Sichtbarkeit von Namen (implizit),<\/li>\n<li>Verwaltung von Variablen (Speicherzellen) (implizit),<\/li>\n<li>Definition von Nebenschichten f\u00fcr die Unterordnung,<\/li>\n<li>Definitionen von Funktionen und Auswahlm\u00f6glichkeiten und andere. <\/li>\n<\/ol>\n<p>\nIn Maschinensprachen gab es das Konzept der Schicht nicht, daher gab es es auch nicht in K\/R, und wenn es dort nicht vorkam, w\u00e4re es Aberglaube und Freigeist, es in sp\u00e4teren B\u00fcchern einzuf\u00fchren. Deshalb existiert das Konzept der Schicht \u00fcberhaupt nicht, obwohl es \u00e4u\u00dferst n\u00fctzlich und offensichtlich ist. <\/p>\n<p>Ohne Schicht ist es unm\u00f6glich, viele Aktionen und Regeln eines Programms kurz und pr\u00e4zise zu erkl\u00e4ren. Zum Beispiel, warum so einfach wie drei Groschen goto schlecht ist, w\u00e4hrend das komplizierte while gut ist. Man kann nur kraftlos schimpfen, wie Dijkstra es tat (\"Die Qualifikation von Programmierern ist eine Funktion, die umgekehrt von der H\u00e4ufigkeit der Verwendung von goto in ihren Programmen abh\u00e4ngt.\"). Kurz gesagt, nur Esel verwenden goto. Der Grad der Begr\u00fcndung \u2014 Gott.) Das ist nicht so schlimm, wenn Ihre B\u00fccher \u00fcberhaupt nichts erkl\u00e4ren m\u00fcssen, aber wie bereits gesagt, ist das nicht unser Schicksal. <\/p>\n<p>\u00dcbrigens kann man annehmen, dass Den Ritchie goto gerade als Schl\u00fcssel f\u00fcr die Suche nach einem nicht benannten Konzept hinterlassen hat, da es keine Notwendigkeit oder Sch\u00f6nheit im Ausdruck goto gab. Vielmehr gab es das Bed\u00fcrfnis nach einer einfachen und verst\u00e4ndlichen Erkl\u00e4rung neuer Sprachprinzipien, die Ritchie selbst nicht geben wollte und die genau auf einem Konzept basieren. <i>Schicht<\/i>. <\/p>\n<h3>Abweichung<\/h3>\n<p>\n<i>Abweichung <\/i> \u2014 \u00c4nderung der \u00fcblichen Eigenschaften eines neuen Namens. <\/p>\n<p>Die wichtigste Abweichung h\u00e4ngt genau mit den Schichteigenschaften des Programms zusammen und wird mit einem Wort beschrieben: \u201estatic\u201c, das in jeder Schicht unterschiedliche Bedeutungen hat. <\/p>\n<h2>5. LETZTES KAPITEL. Gemeinsamkeit der Programmiersprachen<\/h2>\n<p>\nProgrammiersprachen sind <i>bildhafte <\/i>Sprachen (die ein Bild haben, \u201etypisiert\u201c). Sie basieren auf einer expliziten oder impliziten Nutzung eines Bildes. Hier zeigt sich erneut ein Widerspruch: Ein explizites Bild ist verst\u00e4ndlicher, aber weniger praktisch, und umgekehrt. <\/p>\n<p><img decoding=\"async\" alt=\"Matroschka C. Schichtsystem der Programmiersprache\" src=\"\/wp-content\/uploads\/2019\/05\/7d0fd49d678736a023f471b54847be7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>(Die Tabellenformatierung wurde bisher nicht bereitgestellt, daher wird die Tabelle als Bild dargestellt.)<\/i><\/p>\n<p>Nach C entwickelte sich die Entwicklung der Programmiersprachen in Richtung einer erh\u00f6hten Bildlichkeit. Der wichtigste Nachfahre von C, der f\u00fcr das Verst\u00e4ndnis von hoher Bildlichkeit entscheidend ist, ist die Sprache C++. Diese entwickelt die Idee der willk\u00fcrlichen Zuordnung von Operationen zu Werten und verk\u00f6rpert sie auf der Grundlage von C's Ausdruck Auswahl, der einen neuen Namen erh\u00e4lt \u2014 Objekt. Allerdings ist C++ nicht so pr\u00e4gnant und ausdrucksstark wie C, aufgrund der \u00dcberladung neuer Arten von Auswahl und der damit verbundenen Regeln. \u00dcbrigens, sprechen wir \u00fcber \u201e\u00dcberladung\u201c. <\/p>\n<h3>\u00dcberladung und Polymorphismus <\/h3>\n<p>\nDas Wort \u201e\u00dcberladung\u201c (overload) ist ein veralteter Begriff des Maschinenansatzes, der die Schaffung bezeichnet <i>mehrerer Operationen<\/i>. <\/p>\n<p>Maschinen (System) Programmiert <i>Vielfalt <\/i>von Operationen konnte durchaus bel\u00e4stigend sein: \u201eWas bedeutet dieses Zeichen (+): Addition ganzer Zahlen, Addition von Dezimalzahlen oder \u00fcberhaupt eine Verschiebung?! In unserer Zeit schrieb man so nicht!\u201c Daher der negative Unterton des gew\u00e4hlten Wortes (\u201e\u00dcberreaktion\u201c, \u201egenervt\u201c). F\u00fcr den Anwendungsprogrammierer sind mehrere Operationen der Eckpfeiler, die Hauptleistung und das Erbe der Programmiersprache C, so nat\u00fcrlich, dass sie oft nicht bewusst sind. <\/p>\n<p>In der Sprache C++ <i>Vielfalt<\/i> Die Verbreitung erstreckte sich nicht nur auf die urspr\u00fcnglichen Operationen, sondern auch auf die Funktionen \u2013 sowohl als einzelne als auch in Klassen zusammengefasste Methoden. Mit den zahlreichen Methoden kam die M\u00f6glichkeit ihrer \u00dcberschreibung in erweiterten Klassen, die vage als \u201ePolymorphismus\u201c bezeichnet wurde. Die Kombination von Polymorphismus und \u00dcberladung ergab eine explosive Mischung, die sich in zwei Polymorphismen spaltete: \u201eechter\u201c und \u201ead-hoc\u201c. Um dies zu verstehen, muss man sich gegen die vergebenen Namen behaupten. Mit fremdsprachigen Bezeichnungen ist der Weg zu ad geebnet. <\/p>\n<p>Die Bekanntmachung des Typs \u201e\u00dcberladung\u201c dr\u00fcckt sich besser mit dem Wort <i>Nachdeklaration <\/i> \u2013 der Hinzuf\u00fcgung einer gleichnamigen Funktion mit Argumenten einer anderen Art. <\/p>\n<p>Die Bekanntmachung des Typs \u201ePolymorphismus\u201c sollte besser mit dem Wort <i>Neudeklaration<\/i> \u2013 der \u00dcberschreibung einer gleichnamigen Funktion in einer neuen erweiterten Schicht mit Argumenten derselben Art bezeichnet werden. <\/p>\n<p>Dann wird es leicht zu verstehen sein, dass gleichnamige Methoden verschiedener Arten (Argumente) \u2013 <i>Nachdeklarationen<\/i>, eine einzige Art \u2013 <i>Neudeklarationen<\/i>. <\/p>\n<p>Die russischen Begriffe kl\u00e4ren dies. <\/p>\n<h3>Die Startbahn<\/h3>\n<p>\nDie Betrachtung von Begriffen hochgradiger Sprachen best\u00e4tigt die Wichtigkeit klarer Definitionen grundlegender Konzepte. Mit einer richtig beschriebenen C-Sprache wird das Lernen hochgradiger Sprachen einfach und angenehm. <\/p>\n<p>Besonders wichtig ist dies f\u00fcr <i>implizite hochgradige Sprachen<\/i> (PHP, JavaScript). F\u00fcr sie wird die Bedeutung von Objekten (zusammengesetzten Arten) noch h\u00f6her als in C++, aber das Konzept der Art selbst wird implizit und schwer fassbar. In Bezug auf die Benutzerfreundlichkeit sind sie einfacher geworden, aber in Bezug auf das Verst\u00e4ndnis \u2013 komplexer. <\/p>\n<p>Deshalb sollte das Lernen von Programmiersprachen mit C beginnen und weiter in der Reihenfolge der Entstehung der C-Familie von Sprachen erfolgen. <\/p>\n<p>Dasselbe gilt f\u00fcr die Beschreibung von Sprachen. Verschiedene Sprachen haben meist einen \u00fcbereinstimmenden oder kleineren Satz an Typen von Einheiten als die C-Sprache. Die Anzahl der Typen und Exemplare kann in beide Richtungen variieren: in C++ gibt es mehr Typen als in C, in JavaScript weniger. <\/p>\n<p>Besondere Erw\u00e4hnung verdient die MySQL-Sprache. Auf den ersten Blick scheint es nichts Gemeinsames zu geben, aber sie l\u00e4sst sich hervorragend mit der Matrjoschka beschreiben, und das Kennenlernen wird schneller und einfacher. Was wichtig ist, angesichts ihrer Bedeutung f\u00fcr das Web \u2013 die Hauptstra\u00dfe der modernen Programmierung. Und wo MySQL ist, sind auch andere SQLs. Nun, auch verschiedene Fortrans-Paskals-Pythons lassen sich mit der Matrjoschka beschreiben, sobald es die Zeit erlaubt. <\/p>\n<p>So steht uns Gro\u00dfes bevor \u2013 eine anwendungsbezogene Beschreibung der Programmiersprache C und eine einheitliche Beschreibung ihrer Nachfolge-Sprachen. \u201eUnsere Ziele sind klar, die Aufgaben definiert. An die Arbeit, Genossen! (St\u00fcrmischer, langanhaltender Beifall, der in eine Ovation \u00fcbergeht. Alle stehen auf.)\u201c <\/p>\n<p>Ihre Meinungen werden mit gro\u00dfem Interesse angeh\u00f6rt, Ihre Hilfe bei der Erstellung der Matroschka-Website wird mit gro\u00dfem Dank angenommen. Detailliertere Informationen \u00fcber das Buch finden Sie auf der clever in der Matroschka C versteckten Website.<br \/>\n<br \/>Quelle: <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.1.1 - 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\/de\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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\udd47Matroschka C. Schichtsystem der Programmiersprache | ProHoster","description":"Versuchen wir, die Chemie ohne das Periodensystem von Mendelejew (1869) darzustellen.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/33886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=33886"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/33886\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/25550"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=33886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=33886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=33886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}