{"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\/it\/blog\/novosti-interneta\/matryoshka-si-slojnaya-sistema-yazyka-programmy","title":{"rendered":"Matrioska C. Sistema linguistico a strati","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Proviamo ad immaginare la chimica senza il Sistema Periodico di Mendeleev (1869). Quanti elementi avremmo dovuto tenere a mente, in un ordine casuale... (Allora erano 60.)<\/p>\n<p>Basta pensare a uno o pi\u00f9 linguaggi di programmazione. Le stesse sensazioni, lo stesso disordine creativo. <\/p>\n<p>Adesso possiamo rivivere le emozioni dei chimici del XIX secolo, quando gli fu presentato tutto il loro sapere, e qualcosa in pi\u00f9, in un'unica Tavola Periodica. <\/p>\n<p><img decoding=\"async\" alt=\"Matrioska C. Sistema linguistico a strati\" 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 \/>\nIl libro \u00abMatryoshka C. Sistema stratificato del linguaggio di programmazione\u00bb rappresenta tutte le unit\u00e0 del linguaggio C come su un palmo di mano. Questo permette di ordinarle, correggere informazioni obsolete e persino chiarire il concetto stesso di programma. <\/p>\n<p>Oggi le informazioni sulla programmazione necessitano di sistematizzazione pi\u00f9 di quanto non fosse il caso degli elementi chimici 150 anni fa. <\/p>\n<p>La prima necessit\u00e0 \u00e8 l'insegnamento. Mendeleev cominci\u00f2 a creare il suo sistema quando si trov\u00f2 di fronte alla domanda: da quale elemento iniziare a tenere lezioni: O, H, N, He, Au... In questo, lui era avvantaggiato: insegnava ai migliori studenti dell'Universit\u00e0 di San Pietroburgo. E ora la programmazione \u00e8 gi\u00e0 insegnata a scuola e presto inizier\u00e0 anche all'asilo. <\/p>\n<p>La seconda necessit\u00e0 \u00e8 l'approccio scientifico. Con il Sistema Periodico sono stati scoperti nuovi elementi e corretti dati su quelli vecchi. Ha aiutato nella creazione del modello atomico (1911). E cos\u00ec via. <\/p>\n<p>La terza necessit\u00e0 \u00e8 chiarire il concetto di programma. <\/p>\n<p>La programmazione moderna \u00e8 rimasta bloccata negli anni '50 del XX secolo. Allora i programmi erano semplici, e le macchine e i linguaggi macchina erano complessi, quindi tutto ruotava attorno a macchine e linguaggi. <\/p>\n<p>Ora \u00e8 tutto il contrario: i programmi sono complessi e primari, i linguaggi sono semplici e secondari. Questo \u00e8 chiamato approccio applicato, che a tutti sembra familiare. Ma studenti e sviluppatori continuano a essere convinti che sia tutto come prima. <\/p>\n<p>Questo ci riporta alla prima lezione del privat-docente Mendeleev. Cosa dire ai neofiti? Dove si trova la verit\u00e0? \u00c8 questa la questione. <\/p>\n<p>Il libro \u00abMatryoshka C. Sistema stratificato del linguaggio di programmazione\u00bb offre una sua risposta. Ed \u00e8 rivolto non solo agli studenti, ma anche ai programmatori esperti, poich\u00e9 la verit\u00e0 e il ribaltamento della visione del mondo devono essere ricercati proprio da loro, ovvero da noi. <\/p>\n<p>Di seguito troviamo un breve riassunto del libro. <\/p>\n<h2>1. Introduzione<\/h2>\n<p>\nNel 1969 \u00e8 stato creato il linguaggio C, che \u00e8 diventato il linguaggio di programmazione fondamentale e lo \u00e8 rimasto per gi\u00e0 50 anni. Perch\u00e9 \u00e8 cos\u00ec? Innanzitutto perch\u00e9 C \u00e8 un <i>linguaggio applicato<\/i> che ha dato al programma un <i>aspetto umano invece che<\/i> meccanico. <i>Questo risultato \u00e8 stato consolidato dai linguaggi della famiglia C: C++, JavaScript, PHP, Java, C# e altri. In secondo luogo, \u00e8 un linguaggio breve e bello.<\/i>Tuttavia, il linguaggio C viene spesso confuso con l'assemblatore macchina, complicandone e distorcendo cos\u00ec la percezione. L'altra estremit\u00e0 \u00e8 l'imposizione di una 'filosofia' al linguaggio: procedurale, orientata agli oggetti, funzionale, compilato, interpretato, tipizzato e cos\u00ec via. Questo aggiunge emozioni, ma non aiuta a descrivere meglio il linguaggio. <\/p>\n<p>La verit\u00e0 si trova a met\u00e0 strada, e per il linguaggio C \u00e8 rigorosamente a met\u00e0 strada tra una percezione filosofica e meccanica. <\/p>\n<p>Il linguaggio C non \u00e8 autonomo, si sottopone alla normale lingua scritta e allo stesso tempo controlla il linguaggio assembler. Questa posizione \u00e8 descritta dal <\/p>\n<p>Modello linguistico del programma <i>, secondo il quale il programma \u00e8 diviso in tre tipi subordinati: linguistico, codice, comando. Il linguaggio C risponde al secondo, tipo codice.<\/i>Definendo il posto del linguaggio all'interno del programma, \u00e8 possibile sistematizzare le informazioni su di esso, cosa che fa il <\/p>\n<p>Sistema stratificato del linguaggio di programmazione <i>, che rappresenta il linguaggio C nello spirito del sistema di Mendeleev \u2014 su una sola pagina.<\/i>Il sistema \u00e8 costruito tenendo conto dell' <\/p>\n<p>universalit\u00e0 dei linguaggi applicativi <i>, derivante dalla loro subordinazione linguistica. Un insieme di unit\u00e0 della Matryoshka C consente di descrivere e comparare diversi linguaggi, creando una serie di Matryoshka: C++, PHP, JavaScript, C#, MySQL, Python e cos\u00ec via. \u00c8 giusto e corretto che diversi linguaggi siano descritti con le unit\u00e0 del linguaggio fondamentale.<\/i>2. CAPITOLO 1. Modello linguistico del programma. C chiaro. <\/p>\n<h2>Nel primo capitolo \u00e8 presentato il<\/h2>\n<p>\nmodello linguistico del programma <i>, che riflette l'approccio applicato. Secondo esso, il programma ha tre evidenti modi sequenziali:<\/i>linguistico \u2014 il discorso diretto del programmatore che risolve un problema, <\/p>\n<ol>\n<li>codice \u2014 codificazione della soluzione in forma matematica nel linguaggio C (o in qualsiasi altro) <\/li>\n<li>e comando \u2014 comandi macchina diretti.<\/li>\n<li>Il modello linguistico spiega perch\u00e9 C \u00e8 un linguaggio semplice e chiaro. C \u00e8 costruito sull'immagine e somiglianza del nostro linguaggio umano. <\/li>\n<\/ol>\n<p>\nIl modello del linguaggio spiega perch\u00e9 il C \u00e8 un linguaggio semplice e comprensibile. Il C \u00e8 costruito sulla base del linguaggio umano a noi familiare. <\/p>\n<p>Il primo tipo di programma \u00e8 il discorso diretto del programmatore. Il discorso corrisponde al pensiero umano. Attraverso il discorso, i programmatori principianti scrivono programmi \u2014 inizialmente in russo, per poi tradurre passo dopo passo le azioni nel linguaggio di codice. Ed \u00e8 proprio su questo modello che \u00e8 stato creato il linguaggio C. <\/p>\n<p>Le inferenze del programmatore, espresse a parole, vengono trasformate in codice numerico. Questa trasformazione dovrebbe essere chiamata <i>riflessione<\/i>, poich\u00e9 il discorso e il codice hanno una natura comune (riflessione \u2014 nascita \u2014 genitore). Questo \u00e8 piuttosto evidente se si confrontano la forma parlata (a sinistra) e quella codificata (a destra) del programma. <\/p>\n<p><img decoding=\"async\" alt=\"Matrioska C. Sistema linguistico a strati\" src=\"\/wp-content\/uploads\/2019\/05\/e88d13730660ebac1d661bb2d34a33d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c8 curioso notare che la riflessione avviene molto semplicemente \u2014 attraverso due tipi di espressioni. <\/p>\n<p>Tuttavia, la descrizione moderna del linguaggio C (dal 1978) non contiene un elenco sufficiente di nomi n\u00e9 per descrivere il linguaggio in generale n\u00e9 per il compito della riflessione in particolare. Pertanto, siamo costretti a darci da fare e introdurre questi nomi.<\/p>\n<p>La scelta delle parole deve essere precisa e chiara. A tal fine, \u00e8 stato necessario un approccio particolare, esprimibile brevemente cos\u00ec: uso rigoroso della lingua madre. Per gli inglesi sarebbe stata l'inglese, ma noi non siamo inglesi. Quindi utilizziamo ci\u00f2 che abbiamo e cerchiamo di parlare in russo. <\/p>\n<p>La riflessione viene eseguita attraverso due tipi di espressioni: <\/p>\n<ol>\n<li><i>calcolo <\/i>(Ce) \u2014 riflette il cambiamento delle propriet\u00e0 di un oggetto. La propriet\u00e0 dell'oggetto \u00e8 espressa da un numero, quindi l'azione sulla propriet\u00e0 \u00e8 un'azione sul numero \u2014 operazione. <\/li>\n<li><i>sottomissione <\/i>(Se) \u2014 riflette il cambiamento nell'ordine delle azioni. Il modello di Se \u00e8 una proposizione complessa del discorso, per cui la maggior parte delle forme di Se inizia con congiunzioni subordinanti come \"se\", \"altrimenti\", \"mentre\", \"per\". Altre forme di Se li completano. <\/li>\n<\/ol>\n<p>\nA proposito, potete credere che nella descrizione di C non esista un nome per le espressioni di calcolo \u2014 sono chiamate semplicemente \"espressioni\"? Dopo questo, non sorprender\u00e0 l'assenza di un nome e di una classificazione per il tipo di sottomissione e, in generale, la scarsit\u00e0 di nomi, definizioni e generalizzazioni. Tutto ci\u00f2 perch\u00e9 il famoso K\/R (\"Linguaggio C\", Kernighan\/Ritchie, 1978) non \u00e8 una descrizione, ma una guida all'uso del linguaggio. <\/p>\n<p>Tuttavia, sarebbe bello avere comunque una descrizione del linguaggio. Pertanto, questo \u00e8 ci\u00f2 che propone <i>, che rappresenta il linguaggio C nello spirito del sistema di Mendeleev \u2014 su una sola pagina.<\/i>. <\/p>\n<h2>3. CAPITOLO 2. Sistema a livelli. Breve C<\/h2>\n<p>\nQualsiasi descrizione deve essere precisa e estremamente concisa. Nel caso del linguaggio di programmazione, una descrizione diretta \u00e8 difficile. <\/p>\n<p>Ecco che abbiamo un programma. Esso consiste di moduli. I moduli sono composti da sottoprogrammi e raccolte (structure). I sottoprogrammi consistono in espressioni singole: dichiarazioni, calcoli, sottomissioni. Ci sono dieci tipi di sottomissioni. Le sottomissioni collegano sotto-livelli e sottoprogrammi. Anche le dichiarazioni sono numerose. In effetti, le dichiarazioni non vengono incluse solo nei sottoprogrammi e nei sotto-livelli, ma anche nei moduli e nelle raccolte. E la maggior parte delle espressioni \u00e8 composta da parole, che sono cos\u00ec complesse da descrivere che di solito vengono semplicemente fornite in due liste \u2014 parole di base e parole derivate, con cui ci si dovr\u00e0 familiarizzare durante tutto lo studio e l'uso del linguaggio. A questo si aggiungono la punteggiatura e una serie di altre espressioni. <\/p>\n<p>In questa esposizione, \u00e8 difficile capire chi sta su chi. <\/p>\n<p>Un approccio diretto e gerarchico per descrivere il linguaggio sarebbe eccessivamente complicato. La ricerca di percorsi indiretti porta a una descrizione del linguaggio basata sulla sua natura linguistica e sulla parte comandi. Cos\u00ec \u00e8 nato il Sistema a Livelli, che coincide parzialmente con il Sistema Periodico di Mendeleev, il quale \u00e8 anche <i>stratificato<\/i>. Come \u00e8 emerso 42 anni dopo la sua pubblicazione (1869), la periodicit\u00e0 del sistema \u00e8 legata agli <i>strati <\/i>elettronici (1911, modello di atomo di Bohr-Rutherford). Inoltre, il Sistema a Livelli e il Sistema Periodico condividevano una disposizione tabellare di tutte le unit\u00e0 su una pagina. <\/p>\n<p>La descrizione delle unit\u00e0 del linguaggio risulta essere concisa \u2014 soltanto 10 tipi di espressioni e 8 tipi di altre unit\u00e0, oltre a essere sostanziosa e chiara. Anche se poco familiare per i primi approcci. <\/p>\n<p>Le unit\u00e0 del linguaggio sono suddivise in 6 livelli:<\/p>\n<ol>\n<li>gruppi \u2014 righe della tabella<\/li>\n<li>sezioni \u2014 gruppi speciali di tipi (parti della prima riga)<\/li>\n<li>tipi \u2014 celle (livello principale di divisione)<\/li>\n<li>super-tipi \u2014 separatori dei tipi (livello raro)<\/li>\n<li>tipi \u2014 formule delle unit\u00e0 in fondo alla cella o separatamente<\/li>\n<li>modelli \u2014 le stesse unit\u00e0 (solo per le parole)<\/li>\n<\/ol>\n<p>\nI modelli delle parole sono descritti <i>dal dizionario<\/i> \u2014 un sottosistema separato, composto dagli stessi sei livelli. <\/p>\n<p>La componente linguistica del linguaggio C \u00e8 ben evidente, anche se merita comunque una descrizione. Tuttavia, la parte comando del linguaggio \u00e8 legata alla gestione della compilazione, durante la quale si crea un terzo tipo di programma \u2014 il comando. Qui arriviamo all'aspetto pi\u00f9 affascinante del linguaggio C \u2014 la sua bellezza. <\/p>\n<h2>4. CAPITOLI SUCCESSIVI. Il bel C<\/h2>\n<p>\nIl linguaggio C \u00e8 alla base della programmazione moderna. Perch\u00e9? Prima di tutto, per la sua maggiore affinit\u00e0 con il linguaggio naturale. In secondo luogo, perch\u00e9 ha superato elegantemente i limiti dell'elaborazione numerica da parte delle macchine.<\/p>\n<p>Cosa ha effettivamente proposto C? Immagini e tipi. <\/p>\n<p>La parola \u00abtipo\u00bb \u00e8 una traduzione dell'inglese \u00abtype\u00bb, che deriva dal greco \u00abprototypos\u00bb \u2014 \u00abmodello\u00bb. In italiano, la parola \u00abtipo\u00bb non esprime compiutamente il concetto, e si confonde anche con il significato funzionale di \u00abcategoria\u00bb. <\/p>\n<p>Inizialmente, il tipo risolveva un problema puramente meccanico di calcolo, e successivamente \u00e8 diventato una pista di lancio per la nascita dei linguaggi orientati agli oggetti. <\/p>\n<p>Il tipo affrontava immediatamente pi\u00f9 problemi \u2014 sia meccanici che applicativi. Pertanto, l'analisi inizier\u00e0 con il tipo monofunzionale e passer\u00e0 al tipo multifunzionale. <\/p>\n<p>Una delle spiacevoli caratteristiche della programmazione storica \u00e8 che la maggior parte dei concetti, compresi quelli fondamentali, viene presentata senza definizioni. \u00abUn linguaggio di programmazione (nome dei fiumi) ha tipi di numeri interi e floating...\u00bb \u2014 e si va avanti. Non \u00e8 obbligatorio definire cosa sia un \u00abtipo\u00bb (tipo), perch\u00e9 gli autori stessi non lo comprendono appieno e lo eludono per \u00abchiarezza\u00bb. Se sono messi alle strette, forniscono una definizione vaga e inutile. \u00c8 molto utile nascondersi dietro parole straniere: per gli autori russi \u2014 dietro l'inglese (tipo), per gli inglesi \u2014 dietro il francese (subroutine), il greco (polimorfismo), il latino (incapsulamento) o le loro combinazioni (polimorfismo ad hoc). <\/p>\n<p>Ma questo non \u00e8 il nostro destino. La nostra scelta \u00e8 di fornire definizioni chiare in un russo puro. <\/p>\n<h3>Immagine<\/h3>\n<p>\n<i>Immagine<\/i> \u2014 \u00e8 un nome generico di grandezza, che definisce 1) propriet\u00e0 peculiari della grandezza e 2) abbinamento delle operazioni alla grandezza. <\/p>\n<p>La parola \u00abtipo\u00bb (categoria) corrisponde alla prima parte della definizione: \u00abpropriet\u00e0 peculiari della grandezza\u00bb. Ma il significato principale del tipo risiede nella seconda parte: \u00ababbinamento delle operazioni alle grandezze\u00bb.<\/p>\n<p>Il punto di partenza per introdurre il tipo nel linguaggio C \u00e8 un'operazione aritmetica comune, ad esempio, l'operazione di somma. <\/p>\n<p><i>La matematica su carta, scritta a mano o stampata, non fa particolari distinzioni tra i tipi di numeri, solitamente considerandoli come numeri reali. Pertanto, le operazioni di elaborazione sono univoche.<\/i> La matematica, scritta a mano o stampata, non fa particolari distinzioni tra i tipi di numeri, generalmente considerandoli come numeri reali. Pertanto, le operazioni su di essi sono univoche.<\/p>\n<p><i>La matematica meccanica divide rigorosamente i numeri in interi e frazionari. I diversi tipi di numeri vengono memorizzati in modo diverso in memoria e vengono elaborati da comandi diversi del processore. Ad esempio, i comandi per sommare numeri interi e frazionari sono due comandi distinti, corrispondenti a due nodi diversi del processore. Tuttavia, il comando per sommare argomenti interi e frazionari non esiste.<\/i> La matematica applicativa, cio\u00e8 il linguaggio C, distingue i tipi di numeri, ma unisce le operazioni: la somma per numeri interi e\/o frazionari \u00e8 rappresentata da un solo simbolo di operazione. <\/p>\n<p><i>Una chiara definizione del concetto di tipo consente di parlare in modo preciso di altri due concetti:<\/i> grandezza<\/p>\n<p>operazione <i>Grandezza e operazione <\/i>e <i>Grandezza<\/i>. <\/p>\n<h3>\u2014 numero elaborato.<\/h3>\n<p>\n<i>\u2014 elaborazione dei valori delle grandezze originali (argomenti) per ottenere il numero finale (risultato). <\/i> Grandezza e operazione sono interconnesse. Ogni operazione \u00e8 una grandezza, poich\u00e9 ha un risultato numerico. E ogni grandezza \u00e8 il risultato del trasferimento di un valore nel registro del processore\/dal processore, cio\u00e8 \u2014 il risultato di un'operazione. Nonostante questa interconnessione, rimane fondamentale la possibilit\u00e0 di una loro descrizione separata, anche a costo di ripetere una parola in diverse sezioni del dizionario, come avviene in ma3.<\/p>\n<p><i>Operazione<\/i> L'approccio meccanico divide tutti i numeri usati dal programmatore in <\/p>\n<p>. In passato, entrambi erano effettivamente numeri, ad esempio, i comandi erano scritti con codici numerici. Tuttavia, nei linguaggi applicativi, i comandi hanno smesso di essere numeri e sono diventati <\/p>\n<p>parole <i>del comando. <\/i>e <i>dati<\/i>simboli di operazione <i>. I numeri rimasti sono solo i \u00abdati\u00bb, ma continuare a chiamarli cos\u00ec \u00e8 insensato, poich\u00e9 nel passaggio da un punto di vista meccanico a quello matematico, i numeri sono grandezze, che si dividono in originali ( <\/i>e <i>) e finali (<\/i>cercati<i>dati<\/i>). \u00abUn dato ignoto\u00bb suonerebbe ridicolo.<i>Anche i comandi si sono divisi in due tipi di operazioni: matematiche e ausiliarie. Le operazioni matematiche sono operazioni. Torneremo su quelle ausiliarie in seguito.<\/i>Nei linguaggi C, le abituali operazioni matematiche univoche di carta e meccaniche diventano quasi tutte multiple. <\/p>\n<p>Le operazioni multiple sono diverse operazioni omonime con diversi tipi di argomenti e diversi, simili per significato, azioni. <\/p>\n<p>Nei linguaggi C, le abituali operazioni matematiche univoche, sia su carta che su macchine, diventano quasi tutte multiple. <\/p>\n<p>Le operazioni multiple sono diverse operazioni omonime con diverse rappresentazioni degli argomenti e azioni diverse, ma simili in significato. <\/p>\n<p>Le operazioni corrispondono agli argomenti interi, mentre a quelli frazionari corrispondono le operazioni frazionarie. Questa differenza \u00e8 particolarmente evidente nell'operazione di divisione, dove l'espressione 1\/2 restituisce 0 invece di 0,5. Questa notazione non rispetta le regole della matematica tradizionale, ma il linguaggio C non aspira a seguirle (a differenza del Fortran) \u2014 gioca secondo le sue. <i>applicativo<\/i> regole.<\/p>\n<p>Nel caso di miscelazione di numeri interi e frazionari viene attivata un'unica corretta <i>conversione dei valori degli argomenti<\/i> \u2014 una trasformazione selettiva del valore da una forma all'altra. Infatti, quando si somma un numero intero e uno frazionario, il risultato \u00e8 frazionario, quindi la forma dell'operazione <i>sceglie <\/i>l'operazione di trasformazione dell'argomento intero in un valore frazionario. <\/p>\n<p>Alcune operazioni rimangono non <i>multiple<\/i>, e <i>singole.<\/i>Tali operazioni sono definite solo per un tipo di argomenti: il resto della divisione \u2014 argomenti interi, e la bitwise (operazioni bit per bit) \u2014 interi naturali. Ma3 indica la molteplicit\u00e0 delle operazioni con i segni (#^) specificando le forme per cui l'operazione \u00e8 definita. Questa \u00e8 una caratteristica importante ma spesso trascurata di ogni operazione. <\/p>\n<p>Tutte le funzioni sono operazioni unitari arbitrarie. Un'eccezione sono gli operatori \u2014 <i>funzioni senza parentesi<\/i>, integrate nel linguaggio (operazioni primitive). <\/p>\n<h3>Assistenza<\/h3>\n<p>\n<i>Assistenza <\/i> \u2014 l'azione associata all'operazione.<\/p>\n<p>Se consideriamo l'operazione come l'azione principale, possiamo distinguere due azioni accessorie che supportano l'operazione e si differenziano da essa. Queste sono 1) gestione della variabile e 2) subordinazione. Questa azione \u00e8 chiamata <i>assistenza.<\/i>.<\/p>\n<p>A questo punto \u00e8 necessario fare una pausa e parlare separatamente delle traduzioni russe dei testi sui programmi. Nel testo K\/R per registrare le azioni \u00e8 stata introdotta una nuova parola, <i>statement <\/i>(espressione), che ha cercato di separare i concetti dei comandi macchina in diverse azioni: 1) operazione, 2) dichiarazione e 3) subordinazione (chiamata \"costrutti di controllo\"). Questo tentativo \u00e8 stato sepolto dai traduttori russi, sostituendo \"espressione\" con \"operatore\", che \u00e8 diventato:<\/p>\n<ol>\n<li>il sinonimo della parola macchina \"comando\", <\/li>\n<li>\u00e8 risultato sinonimo della locuzione \"segno di azione\",<\/li>\n<li>e otteneva anche un numero illimitato di significati aggiuntivi. Cio\u00e8 \u00e8 diventato simile all'articolo inglese \"uhhh...\". <\/li>\n<\/ol>\n<p>\nConsideriamo le azioni accessorie, o <i>assistenza.<\/i>.<\/p>\n<h4><i>Gestione della variabile<\/i> <\/h4>\n<p>\n<i>Gestione della variabile<\/i> (GV) \u2014 creazione\/rimozione di celle della variabile. <br \/>\nLa GV avviene in forma implicita al momento della dichiarazione della variabile, che \u00e8 gi\u00e0 scritta per un altro scopo \u2014 per indicare la forma della grandezza. Solo un tipo <i>di variabili aggiuntive<\/i> \u00e8 gestito esplicitamente attraverso le funzioni malloc() e free(). <\/p>\n<p>Va notato che le azioni implicite sono pi\u00f9 comode da scrivere, in quanto non richiedono di scrivere nulla, ma sono pi\u00f9 difficili da comprendere \u2014 \u00e8 pi\u00f9 difficile tenerne conto e interpretarli. <\/p>\n<h4><i>Subordinazione<\/i><\/h4>\n<p>\n<i>Subordinazione <\/i> \u2014 connessione\/disconnessione delle sezioni a livello subordinato. <\/p>\n<p>Il linguaggio C propone un modo pratico di gestire l'ordine delle azioni, diverso dall'assemblatore \u2014 la subordinazione. Essa riflette e sviluppa la frase complessa subordinata del linguaggio parlato, con una chiara separazione tra la parte principale (frase subordinata) e la parte dipendente (sezioni sottolivello\/sottoprogramma). <\/p>\n<p>Sia la dichiarazione che la subordinazione sono completamente costruite sul concetto di <i>strato.<\/i>. <\/p>\n<h3>Strato<\/h3>\n<p>\n<i>Strato <\/i> \u2014 \u00e8 un insieme selettivo limitato di espressioni a un livello. <\/p>\n<p>Lo strato ha assunto esplicitamente e implicitamente pi\u00f9 compiti: <\/p>\n<ol>\n<li>ordinamento del programma,<\/li>\n<li>limitazione della visibilit\u00e0 dei nomi (implicitamente),<\/li>\n<li>gestione delle variabili (celle di memoria) (implicitamente),<\/li>\n<li>definizione delle sezioni subordinate per la subordinazione,<\/li>\n<li>definizione delle funzioni e selezioni e altro. <\/li>\n<\/ol>\n<p>\nNei linguaggi di macchina non esisteva il concetto di strato, quindi non \u00e8 apparso nemmeno nel K\/R, e se qualcosa non esisteva l\u00ec \u2014 introdurlo nei libri successivi sarebbe stata un'eresia e una libert\u00e0 di pensiero. Pertanto, il concetto di strato non \u00e8 mai apparso, anche se estremamente utile e del tutto ovvio. <\/p>\n<p>Senza strati \u00e8 impossibile spiegare in modo chiaro e conciso molte azioni e regole del programma. Ad esempio, perch\u00e9 il semplice goto \u2014 \u00e8 cattivo, mentre il complicato while \u2014 \u00e8 buono. Si pu\u00f2 solo imprecare impotentemente, come faceva Dijkstra (\"la qualificazione dei programmatori \u00e8 una funzione inversamente correlata con la frequenza di utilizzo dei comandi goto nei loro programmi\". In breve, solo i caproni usano goto. Il livello di giustificazione \u2014 Dio.) In realt\u00e0, questo non \u00e8 cos\u00ec terribile, se i vostri libri non devono spiegare nulla, ma, come gi\u00e0 detto, questo non \u00e8 il nostro destino. <\/p>\n<p>Si pu\u00f2 presumere che Den Ritchie abbia lasciato il goto come chiave per la ricerca di un concetto non rinominato, poich\u00e9 non c'era bisogno o bellezza nell'espressione goto. Tuttavia, c'era la necessit\u00e0 di una spiegazione semplice e chiara dei nuovi principi del linguaggio, che Ritchie stesso non voleva fornire, e che si basavano proprio su questo concetto. <i>strato.<\/i>. <\/p>\n<h3>Deviazione<\/h3>\n<p>\n<i>Deviazione <\/i> \u2014 modifica delle propriet\u00e0 abituali del nuovo nome. <\/p>\n<p>La pi\u00f9 importante deviazione riguarda le propriet\u00e0 stratificate del programma e si descrive con una sola parola: \u00abstatic\u00bb, che ha significati diversi in ciascun tipo di strato. <\/p>\n<h2>5. ULTIMO CAPITOLO. Universalit\u00e0 dei linguaggi applicativi<\/h2>\n<p>\nI linguaggi applicativi sono <i>immaginifici <\/i>linguaggi (che hanno un\u2019immagine, \u00abtipizzati\u00bb). Essi si basano su un uso esplicito o implicito dell\u2019immagine. Qui si ripresenta un contraddizione: un\u2019immagine esplicita \u00e8 pi\u00f9 comprensibile, ma meno conveniente, e viceversa. <\/p>\n<p><img decoding=\"async\" alt=\"Matrioska C. Sistema linguistico a strati\" src=\"\/wp-content\/uploads\/2019\/05\/7d0fd49d678736a023f471b54847be7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>(La formattazione della tabella non \u00e8 ancora disponibile, quindi la tabella \u00e8 fornita come immagine.)<\/i><\/p>\n<p>Dopo il C, lo sviluppo dei linguaggi applicativi ha preso la strada dell'aumento della loro immaginazione. Il pi\u00f9 importante per comprendere il grado di immaginazione elevata \u00e8 il diretto discendente del C: il linguaggio C++. Esso sviluppa l'idea della selezione arbitraria di operazioni sui valori e la realizza sulla base dell'espressione C di selezione, che riceve un nuovo nome: oggetto. Tuttavia, C++ non \u00e8 cos\u00ec conciso ed espressivo come C, a causa del sovraccarico di nuovi tipi di selezione e delle regole ad esse associate. A proposito, parliamo del \u00absovraccarico\u00bb. <\/p>\n<h3>Sovraccarico e polimorfismo <\/h3>\n<p>\nLa parola \u00absovraccarico\u00bb (overload) \u00e8 un termine obsoleto dell'approccio macchina, che indica la creazione di <i>multiple operazioni<\/i>. <\/p>\n<p>I programmatori (sistemici) <i>la molteplicit\u00e0 <\/i>delle operazioni poteva infastidire: \u00abCosa significa questo simbolo (+): somma di numeri interi, somma di numeri decimali o addirittura uno spostamento?! Al nostro tempo non si scriveva cos\u00ec!\u00bb Da qui deriva il tono negativo della parola scelta (\u00absovraccarico\u00bb, \u00abstancante\u00bb). Per il programmatore applicativo, le operazioni multiple sono la pietra angolare, il principale risultato e il lascito del linguaggio C, cos\u00ec naturali da rimanere spesso inavvertite. <\/p>\n<p>Nel linguaggio C++ <i>la molteplicit\u00e0<\/i> si \u00e8 diffuso non solo alle operazioni originali ma anche alle funzioni \u2014 sia singole che raggruppate in classi \u2014 metodi. Insieme ai metodi multipli si \u00e8 aperta la possibilit\u00e0 della loro ridefinizione in classi estese, che \u00e8 stata vagamente chiamata \u00abpolimorfismo\u00bb. La combinazione di polimorfismo e sovraccarico ha dato una miscela esplosiva che si \u00e8 divisa in due polimorfismi: \u00abvero\u00bb e \u00abad-hoc\u00bb. Capirlo \u00e8 possibile solo contro i nomi assegnati. I nomi stranieri hanno spianato la strada all'ad. <\/p>\n<p>La dichiarazione di tipo \u00absovraccarico\u00bb \u00e8 meglio esprimerla con la parola <i>dichiarazione supplementare <\/i> \u2014 dichiarazione aggiuntiva della stessa funzione con argomenti di un'immagine diversa. <\/p>\n<p>La dichiarazione di tipo \u00abpolimorfismo\u00bb \u00e8 meglio chiamarla <i>ridefinizione<\/i> \u2014 dichiarazione che sovrappone in un nuovo strato espansivo la funzione con nome identico e argomenti della stessa immagine. <\/p>\n<p>Allora sar\u00e0 facile capire che i metodi omonimi di varie immagini (argomenti) sono <i>dichiarati nuovamente<\/i>, mentre quelli della stessa immagine sono <i>ridefiniti.<\/i>. <\/p>\n<p>Le parole russe chiariscono. <\/p>\n<h3>Pista di decollo<\/h3>\n<p>\nLa considerazione dei concetti di linguaggi altamente immaginativi conferma l'importanza di definire chiaramente i concetti fondamentali. Con un C ben descritto, lo studio dei linguaggi altamente immaginativi sar\u00e0 facile e piacevole. <\/p>\n<p>Particolarmente importante \u00e8 per <i>linguaggi altamente immaginativi impliciti<\/i> (PHP, JavaScript). Per loro, l'importanza degli oggetti (immagini composite) diventa ancora pi\u00f9 alta rispetto a C++, ma il concetto stesso di immagine diventa implicito e difficile da afferrare. In termini di comodit\u00e0 sono diventati pi\u00f9 semplici, mentre da un punto di vista della comprensione \u2014 pi\u00f9 complessi. <\/p>\n<p>Pertanto, l'apprendimento dei linguaggi di programmazione dovrebbe iniziare con il C e procedere nell'ordine di apparizione dei linguaggi della famiglia C. <\/p>\n<p>Lo stesso vale per la descrizione dei linguaggi. Diversi linguaggi presentano un insieme di generi di unit\u00e0 coincidente o inferiore rispetto al linguaggio C. Il numero di tipi e modelli pu\u00f2 variare in entrambe le direzioni: C++ ha pi\u00f9 tipi di C, JavaScript \u2014 meno. <\/p>\n<p>Merita una menzione particolare il linguaggio MySQL. Sembrerebbe \u2014 nulla in comune, ma \u00e8 descritto perfettamente dalla Matrioska, e la familiarizzazione con esso diventa pi\u00f9 rapida e semplice. Cosa importante, data la sua rilevanza per il web \u2014 la strada principale della programmazione moderna. E dove c'\u00e8 MySQL, ci sono anche altri SQL. E, naturalmente, vari Fortran-Pascal-Python sono pure descritti dalla Matrioska, appena se ne avr\u00e0 l'occasione. <\/p>\n<p>Quindi, ci aspettano grandi cose: una descrizione pratica del linguaggio C e una descrizione uniforme dei linguaggi successivi. \u00abI nostri obiettivi sono chiari, i compiti definiti. Al lavoro, compagni! (Applausi entusiasti e prolungati, seguiti da un'ovazione. Tutti in piedi.)\u00bb <\/p>\n<p>Le vostre opinioni saranno ascoltate con grande attenzione, il vostro aiuto nella creazione del sito delle matrioske sar\u00e0 accolto con immensa gratitudine. Maggiori informazioni sul libro sono disponibili sul sito, astutamente nascosto nella Matrioska C.<br \/>\n<br \/>Fonte: <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-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.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). \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\" \/>\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\/it\/blog\/novosti-interneta\/matryoshka-si-slojnaya-sistema-yazyka-programmy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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). \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/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\udd47Matrioska C. Sistema stratificato del linguaggio di programmazione | ProHoster","description":"Proviamo a immaginare la chimica senza il sistema periodico di Mendeleev (1869). Quanti elementi bisognava tenere a mente, e in ordine sparso... (Allora \u2014 60.) Per questo \u00e8 sufficiente pensare a uno o pi\u00f9 linguaggi di programmazione contemporaneamente. Gli stessi sentimenti, lo stesso caos creativo. E ora possiamo rivivere le emozioni dei chimici del XIX secolo, quando gli fu proposto tutto il loro","canonical_url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/matryoshka-si-slojnaya-sistema-yazyka-programmy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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). \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","og:url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/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\/it\/wp-json\/wp\/v2\/posts\/33886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=33886"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/33886\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/25550"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=33886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=33886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=33886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}