{"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\/pt\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","title":{"rendered":"Matr\u0451shka C. Sistema camada de linguagem de programa\u00e7\u00e3o","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Vamos tentar imaginar a qu\u00edmica sem a Tabela Peri\u00f3dica de Mendeleev (1869). Quantos elementos voc\u00ea precisava manter na mente, e em uma ordem aleat\u00f3ria... (Naquela \u00e9poca \u2014 60.)<\/p>\n<p>Basta pensar em uma ou mais linguagens de programa\u00e7\u00e3o. As mesmas emo\u00e7\u00f5es, a mesma confus\u00e3o criativa. <\/p>\n<p>Agora podemos vivenciar as emo\u00e7\u00f5es dos qu\u00edmicos do s\u00e9culo XIX, quando lhes foi apresentada toda a sua colabora\u00e7\u00e3o, e um pouco mais, em uma \u00fanica Tabela Peri\u00f3dica. <\/p>\n<p><img decoding=\"async\" alt=\"Matr\u0451shka C. Sistema camada de linguagem de programa\u00e7\u00e3o\" 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 \/>\nO livro \"Matr\u0451shka C. Sistema camada de linguagem de programa\u00e7\u00e3o\" apresenta todas as unidades da linguagem C de forma clara. Isso permite organiz\u00e1-las, corrigir informa\u00e7\u00f5es desatualizadas e at\u00e9 mesmo esclarecer o pr\u00f3prio conceito de programa. <\/p>\n<p>Hoje, as informa\u00e7\u00f5es sobre programa\u00e7\u00e3o necessitam de sistematiza\u00e7\u00e3o ainda mais do que os elementos qu\u00edmicos h\u00e1 150 anos. <\/p>\n<p>A primeira necessidade \u2014 ensino. Mendeleev come\u00e7ou a criar seu sistema quando se deparou com a quest\u00e3o \u2014 por qual elemento come\u00e7ar a dar aulas: O, H, N, He, Au\u2026 Era mais f\u00e1cil para ele \u2014 ele ensinou qu\u00edmica aos melhores \u2014 estudantes da Universidade de S\u00e3o Petersburgo. E programa\u00e7\u00e3o j\u00e1 \u00e9 ensinada nas escolas e em breve come\u00e7ar\u00e1 nos jardins de inf\u00e2ncia. <\/p>\n<p>A segunda necessidade \u2014 abordagem cient\u00edfica. Com a Tabela Peri\u00f3dica, novos elementos foram descobertos e informa\u00e7\u00f5es sobre antigos foram corrigidas. Ela ajudou na cria\u00e7\u00e3o do modelo at\u00f4mico (1911). E assim por diante. <\/p>\n<p>A terceira necessidade \u2014 esclarecer o conceito de programa. <\/p>\n<p>A programa\u00e7\u00e3o moderna, de certa forma, ficou presa nos anos 50 do s\u00e9culo XX. Naquela \u00e9poca, os programas eram simples, enquanto as m\u00e1quinas e as linguagens de m\u00e1quina eram complexas, ent\u00e3o tudo girava em torno das m\u00e1quinas e das linguagens. <\/p>\n<p>Agora, tudo \u00e9 o oposto: os programas s\u00e3o complexos e prim\u00e1rios, enquanto as linguagens s\u00e3o simples e secund\u00e1rias. Isso \u00e9 chamado de abordagem aplicada, que todos parecem conhecer. Mas os alunos e desenvolvedores continuam a ser convencidos de que tudo ainda \u00e9 como antes. <\/p>\n<p>Isso nos leva de volta \u00e0 primeira aula do privat-docente Mendeleev. O que dizer aos calouros? Onde est\u00e1 a verdade? Eis a quest\u00e3o. <\/p>\n<p>O livro \"Matr\u0451shka C. Sistema camada de linguagem de programa\u00e7\u00e3o\" oferece sua resposta. E, portanto, ele se destina n\u00e3o apenas a estudantes, mas tamb\u00e9m a programadores experientes, pois s\u00e3o eles que devem buscar a verdade e transformar a vis\u00e3o de mundo \u2014 ou seja, n\u00f3s. <\/p>\n<p>A seguir, um resumo do livro. <\/p>\n<h2>1. Introdu\u00e7\u00e3o<\/h2>\n<p>\nEm 1969, foi criada a linguagem C, que se tornou a linguagem de programa\u00e7\u00e3o fundamental e a continua a ser h\u00e1 50 anos. Por que isso acontece? Em primeiro lugar, porque C \u00e9 uma <i>linguagem pr\u00e1tica<\/i> , que conferiu \u00e0 programa\u00e7\u00e3o uma <i>apar\u00eancia humana<\/i> em vez de <i>maquin\u00e1ria.<\/i>Esse feito foi consolidado por linguagens da fam\u00edlia C: C++, JavaScript, PHP, Java, C# e outras. Em segundo lugar, \u00e9 uma linguagem concisa e bonita. <\/p>\n<p>No entanto, a pr\u00f3pria linguagem C \u00e9 geralmente confundida com a linguagem de montagem, complicando e distorcendo sua percep\u00e7\u00e3o. A outra extremidade \u00e9 a imposi\u00e7\u00e3o de alguma \"filosofia\": procedural, orientada a objetos, funcional, compilada, interpretada, tipada, e assim por diante. Isso adiciona emo\u00e7\u00e3o, mas n\u00e3o ajuda a descrever melhor a linguagem. <\/p>\n<p>A verdade est\u00e1 no meio, sendo que para a linguagem C, \u00e9 rigorosamente no meio entre a percep\u00e7\u00e3o filos\u00f3fica e a maquin\u00e1ria. <\/p>\n<p>A linguagem C n\u00e3o \u00e9 aut\u00f4noma, ela se submete \u00e0 linguagem escrita comum, e ao mesmo tempo \u2014 controla a linguagem de montagem. Essa situa\u00e7\u00e3o descreve <i>o Modelo de Linguagem do Programa<\/i>, segundo o qual o programa \u00e9 dividido em tr\u00eas aspectos subordinados: lingu\u00edstico, de c\u00f3digo e de comando. A linguagem C \u00e9 respons\u00e1vel pelo segundo, o aspecto de c\u00f3digo. <\/p>\n<p>Definindo o lugar da linguagem no programa, \u00e9 poss\u00edvel organizar as informa\u00e7\u00f5es sobre ela, o que possibilita <i>um Sistema em Camadas da Linguagem do Programa<\/i>, apresentando a linguagem C no esp\u00edrito do sistema de Mendel\u00e9iev \u2014 em uma \u00fanica p\u00e1gina. <\/p>\n<p>O sistema \u00e9 constru\u00eddo levando em considera\u00e7\u00e3o <i>a generalidade das linguagens pr\u00e1ticas<\/i>, decorrente de sua subordina\u00e7\u00e3o lingu\u00edstica. Um conjunto de unidades da Matryoshka C permite descrever e comparar diferentes linguagens, criando uma s\u00e9rie de Matryoshkas: C++, PHP, JavaScript, C#, MySQL, Python e assim por diante. \u00c9 digno e correto que diferentes linguagens sejam descritas por unidades da linguagem fundamental. <\/p>\n<h2>2. CAP\u00cdTULO 1. Modelo de Linguagem do Programa. O C Claro<\/h2>\n<p>\nNo primeiro cap\u00edtulo, \u00e9 apresentada <i>a Modelo de Linguagem do Programa<\/i>, refletindo a abordagem pr\u00e1tica. De acordo com ela, o programa tem tr\u00eas vis\u00f5es sequenciais evidentes: <\/p>\n<ol>\n<li>lingu\u00edstica \u2014 a fala direta do programador que resolve um problema, <\/li>\n<li>de c\u00f3digo \u2014 a codifica\u00e7\u00e3o da solu\u00e7\u00e3o em uma forma matem\u00e1tica na linguagem C (ou em qualquer outra)<\/li>\n<li>e de comando \u2014 os comandos da m\u00e1quina direta. <\/li>\n<\/ol>\n<p>\nO Modelo de Linguagem explica por que C \u00e9 uma linguagem simples e clara. C \u00e9 constru\u00eddo \u00e0 imagem e semelhan\u00e7a da nossa fala humana habitual. <\/p>\n<p>O primeiro tipo de programa \u00e9 a fala direta do programador. A fala reflete o racioc\u00ednio humano. Por meio da fala, programadores iniciantes escrevem programas \u2014 primeiro em russo, depois traduzindo passo a passo suas a\u00e7\u00f5es para uma linguagem de c\u00f3digo. E foi seguindo esse modelo que a linguagem C foi criada. <\/p>\n<p>As conclus\u00f5es do programador, expressas em discurso, s\u00e3o transformadas em uma forma num\u00e9rica de c\u00f3digo. Essa transforma\u00e7\u00e3o deve ser chamada <i>reflex\u00e3o<\/i>, uma vez que a fala e o c\u00f3digo possuem uma \u00fanica natureza (reflex\u00e3o \u2014 nascimento \u2014 origem). Isso \u00e9 bastante evidente quando se compara a forma verbal (\u00e0 esquerda) e a forma de c\u00f3digo (\u00e0 direita) do programa. <\/p>\n<p><img decoding=\"async\" alt=\"Matr\u0451shka C. Sistema camada de linguagem de programa\u00e7\u00e3o\" src=\"\/wp-content\/uploads\/2019\/05\/e88d13730660ebac1d661bb2d34a33d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCuriosamente, a reflex\u00e3o ocorre de forma muito simples \u2014 apenas por dois tipos de express\u00f5es. <\/p>\n<p>No entanto, a descri\u00e7\u00e3o moderna da linguagem C (de 1978) n\u00e3o cont\u00e9m uma lista suficiente de nomes, nem para descrever a linguagem em geral, nem para a tarefa de reflex\u00e3o em particular. Portanto, somos for\u00e7ados a nos dedicar \u00e0 cria\u00e7\u00e3o e introduzir esses nomes.<\/p>\n<p>A escolha de palavras deve ser precisa e clara. Para isso, foi necess\u00e1ria uma abordagem espec\u00edfica, resumida assim \u2014 o uso rigoroso da l\u00edngua nativa. Para os ingleses, seria o ingl\u00eas, mas n\u00e3o somos ingleses. Ent\u00e3o usamos o que temos e nos esfor\u00e7amos para falar em russo. <\/p>\n<p>A reflex\u00e3o \u00e9 realizada por dois tipos de express\u00f5es: <\/p>\n<ol>\n<li><i>c\u00e1lculo <\/i>(Cc) \u2014 reflete a altera\u00e7\u00e3o das propriedades do objeto. A propriedade do objeto \u00e9 expressa por um n\u00famero, ent\u00e3o a a\u00e7\u00e3o sobre a propriedade \u00e9 uma a\u00e7\u00e3o sobre o n\u00famero \u2014 uma opera\u00e7\u00e3o. <\/li>\n<li><i>subordina\u00e7\u00e3o <\/i>(Sc) \u2014 reflete a altera\u00e7\u00e3o da ordem das a\u00e7\u00f5es. O modelo de Sc \u00e9 a frase subordinada em discurso, portanto, a maioria dos tipos de Sc come\u00e7a com conjun\u00e7\u00f5es subordinativas como \"se\", \"caso contr\u00e1rio\", \"enquanto\", \"para\". Outros tipos de Sc as complementam. <\/li>\n<\/ol>\n<p>\nA prop\u00f3sito, voc\u00ea pode acreditar que na descri\u00e7\u00e3o da C n\u00e3o h\u00e1 um nome para express\u00f5es de c\u00e1lculo \u2014 s\u00e3o simplesmente chamadas de \"express\u00f5es\"? Depois disso, n\u00e3o deve surpreender a falta de um nome e uma unifica\u00e7\u00e3o para o tipo subordina\u00e7\u00e3o, e, de maneira geral, a escassez de nomes, defini\u00e7\u00f5es e generaliza\u00e7\u00f5es. Tudo isso porque o famoso K\/R (\"A Linguagem C\", Kernighan\/Ritchie, 1978) n\u00e3o \u00e9 uma descri\u00e7\u00e3o, mas um manual de aplica\u00e7\u00e3o da linguagem. <\/p>\n<p>No entanto, ainda gostar\u00edamos de ter uma descri\u00e7\u00e3o da linguagem. Portanto, ela \u00e9 proposta por <i>um Sistema em Camadas da Linguagem do Programa<\/i>. <\/p>\n<h2>3. CAP\u00cdTULO 2. Sistema em camadas. Breve C<\/h2>\n<p>\nQualquer descri\u00e7\u00e3o deve ser precisa e extremamente concisa. No caso de uma linguagem de programa, uma descri\u00e7\u00e3o direta \u00e9 dif\u00edcil. <\/p>\n<p>Aqui temos um programa. Ele consiste em m\u00f3dulos. Os m\u00f3dulos s\u00e3o formados por subprogramas e cole\u00e7\u00f5es (structure). Os subprogramas consistem em express\u00f5es individuais: declara\u00e7\u00f5es, c\u00e1lculos, comandos. H\u00e1 dez tipos de comandos. Os comandos conectam subn\u00edveis e subprogramas. Tamb\u00e9m existem v\u00e1rias declara\u00e7\u00f5es. No entanto, as declara\u00e7\u00f5es est\u00e3o inclu\u00eddas n\u00e3o apenas em subprogramas e subn\u00edveis, mas tamb\u00e9m em m\u00f3dulos e cole\u00e7\u00f5es. E a maioria das express\u00f5es consiste em palavras que s\u00e3o t\u00e3o dif\u00edceis de descrever que geralmente s\u00e3o apresentadas em duas listas \u2014 palavras originais e derivadas, com as quais se aprender\u00e1 durante todo o estudo e uso da linguagem. Vamos adicionar a isso os sinais de pontua\u00e7\u00e3o e uma s\u00e9rie de outras express\u00f5es. <\/p>\n<p>Nesse relato \u00e9 dif\u00edcil entender quem estava em cima de quem. <\/p>\n<p>Uma abordagem hier\u00e1rquica direta para descrever a linguagem seria excessivamente complexa. A busca por caminhos indiretos leva a descrever a linguagem com base em sua natureza falada e em sua parte de comando. Assim, nasceu o Sistema em Camadas, parcialmente coincidindo com o Sistema Peri\u00f3dico de Mendeleev, que tamb\u00e9m \u00e9 <i>em camadas<\/i>. Como se \u0432\u044b\u044f\u0441ou 42 anos ap\u00f3s sua publica\u00e7\u00e3o (1869), a periodicidade do sistema est\u00e1 relacionada aos <i>n\u00edveis eletr\u00f4nicos <\/i>(1911, modelo de Bohr-Rutherford). Al\u00e9m disso, o Sistema em Camadas e o Sistema Peri\u00f3dico compartilham a disposi\u00e7\u00e3o tabular de todas as unidades em uma \u00fanica p\u00e1gina. <\/p>\n<p>A descri\u00e7\u00e3o das unidades da linguagem torna-se concisa \u2014 apenas 10 categorias de express\u00f5es e 8 categorias de outras unidades, al\u00e9m de ser substancial e visual. Embora tamb\u00e9m seja incomum para um primeiro contato. <\/p>\n<p>As unidades da linguagem s\u00e3o divididas em 6 n\u00edveis:<\/p>\n<ol>\n<li>ordens \u2014 linhas da tabela<\/li>\n<li>departamentos \u2014 grupos especiais de categorias (partes da primeira linha)<\/li>\n<li>categorias \u2014 c\u00e9lulas (n\u00edvel principal de divis\u00e3o)<\/li>\n<li>supercategorias \u2014 separadores de tipos (n\u00edvel raro)<\/li>\n<li>tipos \u2014 f\u00f3rmulas de unidades na parte inferior da c\u00e9lula ou separadamente<\/li>\n<li>exemplares \u2014 as pr\u00f3prias unidades (apenas para palavras)<\/li>\n<\/ol>\n<p>\nOs exemplares de palavras s\u00e3o descritos por <i>um dicion\u00e1rio<\/i> \u2014 um subsistema separado, composto pelos mesmos seis n\u00edveis. <\/p>\n<p>A componente falada da linguagem C \u00e9 bastante \u00f3bvia, embora ainda mere\u00e7a descri\u00e7\u00e3o. A parte de comando da linguagem est\u00e1 relacionada ao gerenciamento da compila\u00e7\u00e3o, durante a qual um terceiro tipo de programa \u2014 o de comando \u2014 \u00e9 criado. Aqui chegamos ao aspecto mais fascinante da linguagem C \u2014 sua beleza. <\/p>\n<h2>4. CAP\u00cdTULOS SEGUINTES. Belo C<\/h2>\n<p>\nA linguagem C \u00e9 a base da programa\u00e7\u00e3o moderna. Por qu\u00ea? Primeiro, devido \u00e0 sua maior correspond\u00eancia com a fala. Em segundo lugar, porque contornou elegantemente as limita\u00e7\u00f5es do processamento num\u00e9rico por m\u00e1quinas.<\/p>\n<p>O que exatamente a linguagem C prop\u00f4s? Tipo e estrutura. <\/p>\n<p>A palavra \"tipo\" \u00e9 a tradu\u00e7\u00e3o do termo ingl\u00eas \"type\", que vem do grego \"prototypos\" \u2014 \"modelo\". Em portugu\u00eas, o termo \"tipo\" n\u00e3o transmite a ess\u00eancia do conceito expresso, al\u00e9m de se misturar ao significado funcional de \"classe\". <\/p>\n<p>Originalmente, o tipo solucionava puramente uma tarefa de m\u00e1quina, e depois se tornou uma pista para o surgimento de linguagens orientadas a objetos. <\/p>\n<p>A estrutura imediatamente resolvia v\u00e1rias tarefas \u2014 tanto de m\u00e1quina como aplicativas. Portanto, a discuss\u00e3o come\u00e7ar\u00e1 com o tipo unidimensional e avan\u00e7ar\u00e1 para a estrutura multitarefa. <\/p>\n<p>Uma das caracter\u00edsticas desagrad\u00e1veis da programa\u00e7\u00e3o hist\u00f3rica \u00e9 que a maioria dos conceitos, incluindo os principais, s\u00e3o apresentados sem defini\u00e7\u00f5es. \"A linguagem de programa\u00e7\u00e3o (nome dos rios) tem tipos num\u00e9ricos inteiros e de ponto flutuante\u2026\" \u2014 e seguiam em frente. O que \u00e9 \"tipo\" (modelo) \u2014 n\u00e3o precisa ser definido, porque os autores mesmos n\u00e3o entendem completamente e acabam \"abafando para clareza\". Se forem questionados, acabam dando uma defini\u00e7\u00e3o vaga e in\u00fatil. Esconder-se atr\u00e1s de palavras estrangeiras ajuda muito: para autores russos \u2014 atr\u00e1s do ingl\u00eas (tipo), para ingleses \u2014 atr\u00e1s do franc\u00eas (subrotina), grego (polimorfismo), latino (encapsula\u00e7\u00e3o) ou suas combina\u00e7\u00f5es (polimorfismo ad-hoc). <\/p>\n<p>Mas esse n\u00e3o \u00e9 o nosso destino. Nossa escolha \u00e9 defini\u00e7\u00f5es transparentes na l\u00edngua portuguesa clara. <\/p>\n<h3>Modelo<\/h3>\n<p>\n<i>Modelo<\/i> \u2014 \u00e9 o nome protot\u00edpico da grandeza, que define 1) as propriedades pr\u00f3prias da grandeza e 2) a sele\u00e7\u00e3o de opera\u00e7\u00f5es relacionadas a ela. <\/p>\n<p>A palavra \"tipo\" (classe) se refere \u00e0 primeira parte da defini\u00e7\u00e3o: \"propriedades pr\u00f3prias da grandeza\". Mas o verdadeiro sentido do modelo est\u00e1 na segunda parte: \"sele\u00e7\u00e3o de opera\u00e7\u00f5es para as grandezas\".<\/p>\n<p>O ponto de partida para a introdu\u00e7\u00e3o do modelo na linguagem C \u00e9 uma opera\u00e7\u00e3o aritm\u00e9tica comum, como a adi\u00e7\u00e3o. <\/p>\n<p><i>Matem\u00e1tica<\/i> escrita \u00e0 m\u00e3o ou impressa, n\u00e3o faz uma distin\u00e7\u00e3o especial entre os tipos de n\u00fameros, geralmente considerando-os como reais. Portanto, suas opera\u00e7\u00f5es de processamento s\u00e3o unidimensionais.<\/p>\n<p><i>M\u00e1quina<\/i> A matem\u00e1tica divide rigidamente os n\u00fameros em inteiros e fracion\u00e1rios. Diferentes tipos de n\u00fameros s\u00e3o armazenados de maneiras diferentes na mem\u00f3ria e processados por diferentes comandos do processador. Por exemplo, os comandos de adi\u00e7\u00e3o de n\u00fameros inteiros e fracion\u00e1rios s\u00e3o dois comandos distintos, correspondendo a dois n\u00f3s diferentes do processador. No entanto, o comando de adi\u00e7\u00e3o de argumentos inteiros e fracion\u00e1rios n\u00e3o existe. <\/p>\n<p><i>Aplicada<\/i> A matem\u00e1tica, ou seja, a linguagem C, separa os tipos de n\u00fameros, mas une as opera\u00e7\u00f5es: a adi\u00e7\u00e3o para n\u00fameros inteiros e\/ou fracion\u00e1rios \u00e9 escrita com um \u00fanico operador.<\/p>\n<p>Uma defini\u00e7\u00e3o clara do conceito de forma permite falar de dois outros conceitos: <i>quantidade <\/i>e <i>opera\u00e7\u00e3o<\/i>. <\/p>\n<h3>Quantidade e opera\u00e7\u00e3o<\/h3>\n<p>\n<i>Quantidade <\/i> \u2014 o n\u00famero processado.<\/p>\n<p><i>Opera\u00e7\u00e3o<\/i> \u2014 o processamento dos valores das quantidades iniciais (argumentos) para obter um n\u00famero final (resultado). <\/p>\n<p>Quantidade e opera\u00e7\u00e3o est\u00e3o interligadas. Cada opera\u00e7\u00e3o \u00e9 uma quantidade, pois tem um resultado num\u00e9rico. E cada quantidade \u00e9 o resultado da transfer\u00eancia de um valor para um registrador do processador \/ do processador, ou seja, o resultado de uma opera\u00e7\u00e3o. Apesar dessa interconex\u00e3o, a principal \u00e9 a possibilidade de descri\u00e7\u00e3o separada, ainda que com a repeti\u00e7\u00e3o de uma palavra em diferentes se\u00e7\u00f5es do dicion\u00e1rio, o que acontece na pr\u00e1tica. <\/p>\n<p>A abordagem da m\u00e1quina dividia todos os n\u00fameros usados pelo programador em <i>comandos <\/i>e <i>dados<\/i>. Antes, tanto os comandos quanto os dados eram, de fato, n\u00fameros, por exemplo, os comandos eram escritos com c\u00f3digos num\u00e9ricos. No entanto, nas linguagens aplicadas, os comandos deixaram de ser n\u00fameros e se tornaram <i>palavras <\/i>e <i>s\u00edmbolos de a\u00e7\u00e3o<\/i>. Apenas os \"dados\" permaneceram como n\u00fameros, mas continuar a cham\u00e1-los assim \u00e9 rid\u00edculo, porque, ao passar de uma perspectiva de m\u00e1quina para uma perspectiva matem\u00e1tica, os n\u00fameros s\u00e3o quantidades que se dividem em iniciais (<i>dados<\/i>) e finais (<i>procurados<\/i>). \"Dado desconhecido\" soaria est\u00fapido. <\/p>\n<p>Os comandos tamb\u00e9m se dividiram em dois tipos de a\u00e7\u00f5es: matem\u00e1ticas e auxiliares. A\u00e7\u00f5es matem\u00e1ticas s\u00e3o opera\u00e7\u00f5es. Voltaremos \u00e0s auxiliares mais tarde. <\/p>\n<p>Nas linguagens C, as opera\u00e7\u00f5es matem\u00e1ticas un\u00e1rias ou \u00fanicas, que eram comuns em papel e na m\u00e1quina, est\u00e3o se tornando quase todas m\u00faltiplas. <\/p>\n<p>Opera\u00e7\u00f5es m\u00faltiplas s\u00e3o v\u00e1rias opera\u00e7\u00f5es hom\u00f4nimas com diferentes formas de argumentos e a\u00e7\u00f5es que s\u00e3o semanticamente semelhantes. <\/p>\n<p>Opera\u00e7\u00f5es inteiras correspondem a argumentos inteiros, enquanto opera\u00e7\u00f5es fracion\u00e1rias correspondem a argumentos fracion\u00e1rios. Essa diferen\u00e7a \u00e9 especialmente evidente na opera\u00e7\u00e3o de divis\u00e3o, quando a express\u00e3o 1\/2 resulta em 0, em vez de 0,5. Essa nota\u00e7\u00e3o n\u00e3o segue as regras da matem\u00e1tica convencional, mas a linguagem C n\u00e3o busca segui-las (diferente de Fortran) \u2014 ela opera sob suas pr\u00f3prias <i>regras.<\/i> No caso de mistura de n\u00fameros inteiros e fracion\u00e1rios, \u00e9 ativada a \u00fanica forma correta de<\/p>\n<p>normaliza\u00e7\u00e3o de valores de argumentos <i>\u2014 a transforma\u00e7\u00e3o seletiva de um valor de uma forma para outra. De fato, ao somar um n\u00famero inteiro e um n\u00famero fracion\u00e1rio, o resultado \u00e9 fracion\u00e1rio, assim, a forma da opera\u00e7\u00e3o<\/i> ajusta <i>a opera\u00e7\u00e3o de transforma\u00e7\u00e3o do argumento inteiro em um valor fracion\u00e1rio. <\/i>Uma s\u00e9rie de opera\u00e7\u00f5es permanece n\u00e3o <\/p>\n<p>m\u00faltipla <i>unit\u00e1ria.<\/i>, e <i>Essas opera\u00e7\u00f5es s\u00e3o definidas apenas para um tipo de argumento: o resto da divis\u00e3o \u2014 para argumentos inteiros, e a disposi\u00e7\u00e3o (opera\u00e7\u00f5es bit a bit) \u2014 para inteiros naturais. A MA3 indica a multiplicidade das opera\u00e7\u00f5es com s\u00edmbolos (#^) que especificam as formas para as quais a opera\u00e7\u00e3o \u00e9 definida. Essa \u00e9 uma propriedade importante, mas frequentemente ignorada, de cada opera\u00e7\u00e3o.<\/i>Todas as fun\u00e7\u00f5es s\u00e3o opera\u00e7\u00f5es unit\u00e1rias arbitr\u00e1rias. A exce\u00e7\u00e3o s\u00e3o os operadores \u2014 <\/p>\n<p>fun\u00e7\u00f5es sem par\u00eanteses <i>, inseridas na linguagem (opera\u00e7\u00f5es b\u00e1sicas).<\/i>A facilita\u00e7\u00e3o <\/p>\n<h3>\u00e9 uma a\u00e7\u00e3o que acompanha a opera\u00e7\u00e3o.<\/h3>\n<p>\n<i>\u00e9 uma a\u00e7\u00e3o que acompanha a opera\u00e7\u00e3o. <\/i> Se considerarmos a opera\u00e7\u00e3o como a a\u00e7\u00e3o principal, podemos identificar duas a\u00e7\u00f5es acompanhantes que permitem a opera\u00e7\u00e3o e se diferenciam dela. S\u00e3o 1) controle de vari\u00e1vel e 2) submiss\u00e3o. Essa a\u00e7\u00e3o \u00e9 denominada<\/p>\n<p>facilita\u00e7\u00e3o. <i>Aqui, \u00e9 necess\u00e1rio desviar a aten\u00e7\u00e3o e falar separadamente sobre as tradu\u00e7\u00f5es russas de livros de programa\u00e7\u00e3o. No texto K\/R, foi introduzida uma nova palavra para registrar a\u00e7\u00f5es,<\/i>.<\/p>\n<p>statement <i>que tentou dividir os conceitos de comandos de m\u00e1quina em diferentes a\u00e7\u00f5es: 1) opera\u00e7\u00e3o, 2) declara\u00e7\u00e3o e 3) submiss\u00e3o (denominada \u2018constru\u00e7\u00f5es de controle\u2019). Essa tentativa foi frustrada pelos tradutores russos, que substitu\u00edram \u2018express\u00e3o\u2019 pela palavra \u2018operador\u2019, a qual: <\/i>se tornou sin\u00f4nimo da palavra de m\u00e1quina \u2018comando\u2019,<\/p>\n<ol>\n<li>tornou-se sin\u00f4nimo da express\u00e3o \u2018s\u00edmbolo de a\u00e7\u00e3o\u2019, <\/li>\n<li>e tamb\u00e9m adquiriu um n\u00famero ilimitado de significados adicionais. Assim, transformou-se em algo parecido com o artigo ingl\u00eas \u2018uh\u2026\u2019<\/li>\n<li>Consideremos as a\u00e7\u00f5es acompanhantes, ou <\/li>\n<\/ol>\n<p>\nfacilita\u00e7\u00f5es. <i>Controle de vari\u00e1vel.<\/i>.<\/p>\n<h4><i>Gerenciamento de vari\u00e1vel<\/i> <\/h4>\n<p>\n<i>Gerenciamento de vari\u00e1vel<\/i> (UP) \u2014 cria\u00e7\u00e3o\/remo\u00e7\u00e3o de c\u00e9lulas vari\u00e1veis. <br \/>\nA UP ocorre de forma impl\u00edcita ao declarar uma vari\u00e1vel, que j\u00e1 \u00e9 escrita por outra raz\u00e3o \u2014 para indicar a magnitude. Apenas um tipo \u00e9 gerenciado explicitamente. <i>vari\u00e1veis adicionais<\/i> usando as fun\u00e7\u00f5es malloc() e free(). <\/p>\n<p>\u00c9 importante notar que a\u00e7\u00f5es impl\u00edcitas s\u00e3o mais convenientes para escrita, pois n\u00e3o requerem nada al\u00e9m do que j\u00e1 est\u00e1 escrito, mas s\u00e3o mais dif\u00edceis de entender \u2014 s\u00e3o mais complicadas de contabilizar e interpretar. <\/p>\n<h4><i>Subordina\u00e7\u00e3o<\/i><\/h4>\n<p>\n<i>Subordina\u00e7\u00e3o <\/i> \u2014 conex\u00e3o\/desconex\u00e3o de se\u00e7\u00f5es de camadas. <\/p>\n<p>A linguagem C apresentou uma forma pr\u00e1tica de controle da ordem das a\u00e7\u00f5es que difere da montagem \u2014 subordina\u00e7\u00e3o. Ela reflete e desenvolve a ora\u00e7\u00e3o composta com clara separa\u00e7\u00e3o entre a parte principal (ora\u00e7\u00e3o subordinada) e a parte subordinada (se\u00e7\u00f5es de subn\u00edvel\/ subprocesso). <\/p>\n<p>Tanto a declara\u00e7\u00e3o quanto a subordina\u00e7\u00e3o s\u00e3o inteiramente baseadas na no\u00e7\u00e3o de <i>camada<\/i>. <\/p>\n<h3>Camada<\/h3>\n<p>\n<i>Camada <\/i> \u2014 \u00e9 um conjunto seletivo restrito de express\u00f5es unidimensionais. <\/p>\n<p>A camada assumiu, de forma expl\u00edcita e impl\u00edcita, a execu\u00e7\u00e3o de v\u00e1rias tarefas simultaneamente: <\/p>\n<ol>\n<li>organiza\u00e7\u00e3o do programa,<\/li>\n<li>limita\u00e7\u00e3o da visibilidade de nomes (implicitamente),<\/li>\n<li>gerenciamento de vari\u00e1veis (c\u00e9lulas de mem\u00f3ria) (implicitamente),<\/li>\n<li>defini\u00e7\u00e3o de se\u00e7\u00f5es subordinadas para subordina\u00e7\u00e3o,<\/li>\n<li>defini\u00e7\u00f5es de fun\u00e7\u00f5es e sele\u00e7\u00f5es, entre outras. <\/li>\n<\/ol>\n<p>\nNas linguagens de m\u00e1quina n\u00e3o havia o conceito de camada, portanto n\u00e3o apareceu na C\/R, e se algo n\u00e3o existia l\u00e1 \u2014 introduzir isso em livros posteriores seria heresia e otimismo. Assim, o conceito de camada n\u00e3o se tornou presente, embora seja extremamente \u00fatil e bastante \u00f3bvio. <\/p>\n<p>Sem camada, n\u00e3o \u00e9 poss\u00edvel explicar de forma sucinta e clara muitas a\u00e7\u00f5es e regras do programa. Por exemplo, por que um simples goto \u00e9 ruim, enquanto um while complicado \u00e9 bom. Pode-se apenas reclamar impotentemente, como fez Dijkstra (a \"qualifica\u00e7\u00e3o de programadores \u00e9 uma fun\u00e7\u00e3o inversa da frequ\u00eancia com que os operadores goto aparecem em seus programas\". Em suma, apenas os tolos usam goto. O n\u00edvel de justificativa \u2014 Deus.) Na verdade, isso n\u00e3o \u00e9 t\u00e3o grave se seus livros n\u00e3o precisam explicar nada, mas, como j\u00e1 dissemos, esse n\u00e3o \u00e9 nosso destino. <\/p>\n<p>Ali\u00e1s, pode-se supor que Den Ritchie deixou o goto precisamente como uma chave para encontrar um conceito n\u00e3o nomeado, porque n\u00e3o havia necessidade ou beleza na express\u00e3o goto. No entanto, havia a necessidade de uma explica\u00e7\u00e3o simples e clara dos novos princ\u00edpios do idioma, que o pr\u00f3prio Ritchie n\u00e3o queria fornecer, e que se baseiam na no\u00e7\u00e3o de <i>camada<\/i>. <\/p>\n<h3>Desvio<\/h3>\n<p>\n<i>Desvio <\/i> \u2014 uma altera\u00e7\u00e3o nas caracter\u00edsticas normais de um novo nome. <\/p>\n<p>O desvio mais importante est\u00e1 relacionado \u00e0s propriedades em camadas do programa, e \u00e9 descrito por uma palavra: \"static\", que tem diferentes significados em cada tipo de camada. <\/p>\n<h2>5. CAP\u00cdTULO FINAL. Generalidade das linguagens aplicadas<\/h2>\n<p>\nLinguagens aplicadas s\u00e3o <i>figurativas <\/i>linguagens (que t\u00eam uma imagem, \"tipadas\"). Elas se baseiam no uso expl\u00edcito ou impl\u00edcito da imagem. E aqui novamente surge uma contradi\u00e7\u00e3o: a imagem expl\u00edcita \u00e9 mais clara, mas menos conveniente, e vice-versa. <\/p>\n<p><img decoding=\"async\" alt=\"Matr\u0451shka C. Sistema camada de linguagem de programa\u00e7\u00e3o\" src=\"\/wp-content\/uploads\/2019\/05\/7d0fd49d678736a023f471b54847be7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>(A formata\u00e7\u00e3o da tabela ainda n\u00e3o foi trazida, portanto a tabela \u00e9 apresentada como uma imagem.)<\/i><\/p>\n<p>Ap\u00f3s C, o desenvolvimento das linguagens aplicadas seguiu o caminho do aumento de sua figuratividade. O mais importante para entender a alta figuratividade \u00e9 o descendente direto de C \u2014 a linguagem C++. Ela desenvolve a ideia de sele\u00e7\u00e3o arbitr\u00e1ria de opera\u00e7\u00f5es para grandezas e a incorpora com base na express\u00e3o c, que recebe um novo nome \u2014 objeto. No entanto, C++ n\u00e3o \u00e9 t\u00e3o concisa e expressiva quanto C, devido \u00e0 sobrecarga de novos tipos de sele\u00e7\u00e3o e as regras associadas. A prop\u00f3sito, vamos falar sobre \"sobrecarga\". <\/p>\n<h3>Sobrecarga e polimorfismo <\/h3>\n<p>\nA palavra \"sobrecarga\" (overload) \u00e9 um termo ultrapassado de uma abordagem de m\u00e1quina, que se refere \u00e0 cria\u00e7\u00e3o de <i>m\u00faltiplas opera\u00e7\u00f5es<\/i>. <\/p>\n<p>Programadores de sistemas <i>A multiplicidade <\/i>de opera\u00e7\u00f5es poderia ser irritante: \"O que significa esse sinal (+): adi\u00e7\u00e3o de n\u00fameros inteiros, adi\u00e7\u00e3o de n\u00fameros fracion\u00e1rios ou simplesmente uma desloca\u00e7\u00e3o?! Nos nossos dias, n\u00e3o se escrevia assim!\" Da\u00ed a conota\u00e7\u00e3o negativa da palavra escolhida (\"excesso\", \"cansa\u00e7o\"). Para o programador aplicado, m\u00faltiplas opera\u00e7\u00f5es s\u00e3o a piedra angular, a principal conquista e legado da linguagem C, t\u00e3o naturais que muitas vezes n\u00e3o s\u00e3o percebidas. <\/p>\n<p>Na linguagem C++ <i>A multiplicidade<\/i> a se espalhou n\u00e3o apenas para opera\u00e7\u00f5es de origem, mas tamb\u00e9m para fun\u00e7\u00f5es \u2014 tanto separadas quanto agrupadas em classes \u2014 m\u00e9todos. Juntamente com m\u00faltiplos m\u00e9todos, surgiu a possibilidade de sua redefini\u00e7\u00e3o em classes expandidas, que foi vagamente chamada de 'polimorfismo'. A combina\u00e7\u00e3o de polimorfismo e sobrecarga gerou uma mistura explosiva, que se dividiu em dois polimorfismos: 'verdadeiro' e 'ad-hoc'. Compreender isso pode ser feito apenas desafiando os nomes atribu\u00eddos. Estradas pavimentadas com nomes estrangeiros levam ao ad. <\/p>\n<p>A declara\u00e7\u00e3o do tipo 'sobrecarga' \u00e9 melhor expressa pela palavra <i>redeclara\u00e7\u00e3o <\/i> \u2014 uma declara\u00e7\u00e3o que adiciona uma fun\u00e7\u00e3o de mesmo nome com argumentos de outro tipo. <\/p>\n<p>A declara\u00e7\u00e3o do tipo 'polimorfismo' \u00e9 melhor chamada pela palavra <i>redeclara\u00e7\u00e3o<\/i> \u2014 uma declara\u00e7\u00e3o que sobrep\u00f5e a fun\u00e7\u00e3o de mesmo nome em uma nova camada de extens\u00e3o com os mesmos argumentos de tipo. <\/p>\n<p>Ent\u00e3o ser\u00e1 f\u00e1cil entender que m\u00e9todos de mesmo nome de diferentes tipos (argumentos) \u2014 <i>s\u00e3o redeclarados<\/i>, enquanto de um mesmo tipo \u2014 <i>s\u00e3o redefinidos<\/i>. <\/p>\n<p>Palavras russas resolvem. <\/p>\n<h3>Pista de decolagem<\/h3>\n<p>\nA considera\u00e7\u00e3o de conceitos de linguagens de alto n\u00edvel confirma a import\u00e2ncia de uma defini\u00e7\u00e3o clara de conceitos fundamentais. Com o Si corretamente descrito, o aprendizado de linguagens de alto n\u00edvel ser\u00e1 f\u00e1cil e prazeroso. <\/p>\n<p>Isso \u00e9 especialmente importante para <i>linguagens de alto n\u00edvel impl\u00edcitas<\/i> (PHP, JavaScript). Para elas, a import\u00e2ncia de objetos (tipos compostos) torna-se ainda maior do que em C++, mas o pr\u00f3prio conceito de tipo torna-se impl\u00edcito e dif\u00edcil de captar. Do ponto de vista da conveni\u00eancia, tornaram-se mais simples, mas, em termos de entendimento \u2014 mais complicadas. <\/p>\n<p>Portanto, o estudo de linguagens de programa\u00e7\u00e3o deve come\u00e7ar com a linguagem C e continuar na ordem de surgimento das linguagens da fam\u00edlia C. <\/p>\n<p>O mesmo se aplica \u00e0 descri\u00e7\u00e3o de linguagens. Diferentes linguagens t\u00eam um conjunto coincidente ou menor de tipos b\u00e1sicos do que a linguagem C. O n\u00famero de tipos e modelos pode variar em ambas as dire\u00e7\u00f5es: C++ tem mais tipos do que C, enquanto JavaScript tem menos. <\/p>\n<p>Um destaque especial merece a linguagem MySQL. \u00c0 primeira vista, parece n\u00e3o ter nada em comum, mas \u00e9 perfeitamente descrita pela Matryoshka, e a familiariza\u00e7\u00e3o com ela torna-se mais r\u00e1pida e f\u00e1cil. O que \u00e9 importante, considerando seu significado para a web \u2014 a estrada prim\u00e1ria da programa\u00e7\u00e3o moderna. E onde h\u00e1 MySQL, h\u00e1 outros SQL. Bem, e todas essas linguagens como Fortran, Pascal, Python tamb\u00e9m s\u00e3o descritas pela Matryoshka, quando as m\u00e3os chegam l\u00e1. <\/p>\n<p>Portanto, grandes coisas nos esperam \u2014 uma descri\u00e7\u00e3o pr\u00e1tica da linguagem C e uma descri\u00e7\u00e3o unificada das linguagens que a sucedem. \"Nossos objetivos s\u00e3o claros, as tarefas est\u00e3o definidas. Vamos ao trabalho, camaradas! (Aplausos intensos e prolongados, que se transformam em uma ova\u00e7\u00e3o. Todos se levantam.)\" <\/p>\n<p>As suas opini\u00f5es ser\u00e3o ouvidas com grande aten\u00e7\u00e3o, sua ajuda na cria\u00e7\u00e3o do site das matri\u00f3shkas ser\u00e1 recebida com imensa gratid\u00e3o. Informa\u00e7\u00f5es mais completas sobre o livro podem ser encontradas em um site astuciosamente escondido na Matri\u00f3shka 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-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - 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\/pt\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Matri\u00f3shka C. Sistema de linguagem estruturada | ProHoster","description":"Vamos tentar imaginar a qu\u00edmica sem a Tabela Peri\u00f3dica de Mendel\u00e9iev (1869).","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/33886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=33886"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/33886\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/25550"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=33886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=33886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=33886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}