{"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\/es\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","title":{"rendered":"Matrushka C. Sistema de capas del lenguaje de programaci\u00f3n","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Intentemos imaginar la qu\u00edmica sin la Tabla Peri\u00f3dica de Mendel\u00e9yev (1869). \u00bfCu\u00e1ntos elementos hab\u00eda que recordar, y adem\u00e1s en un orden arbitrario...? (En ese entonces, eran 60).<\/p>\n<p>Para ello, basta con pensar en uno o varios lenguajes de programaci\u00f3n a la vez. Las mismas sensaciones, el mismo desorden creativo. <\/p>\n<p>Y ahora podemos experimentar las emociones de los qu\u00edmicos del siglo XIX, cuando se les ofreci\u00f3 todo su conocimiento, y algo m\u00e1s, en una sola Tabla Peri\u00f3dica. <\/p>\n<p><img decoding=\"async\" alt=\"Matrushka C. Sistema de capas del lenguaje de programaci\u00f3n\" 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 \/>\nEl libro 'Matryoshka C. Sistema en capas del lenguaje de programaci\u00f3n' presenta todas las unidades del lenguaje C al alcance de la mano. Esto permite ordenarlas, corregir informaci\u00f3n desactualizada e incluso clarificar el mismo concepto de programa. <\/p>\n<p>Hoy en d\u00eda, la informaci\u00f3n sobre programaci\u00f3n necesita sistematizaci\u00f3n m\u00e1s que los elementos qu\u00edmicos hace 150 a\u00f1os. <\/p>\n<p>La primera necesidad es la ense\u00f1anza. Mendel\u00e9yev empez\u00f3 a crear su sistema cuando se enfrent\u00f3 a la pregunta de con qu\u00e9 elemento comenzar a dar conferencias: O, H, N, He, Au... En su caso, era m\u00e1s f\u00e1cil; ense\u00f1aba qu\u00edmica a los mejores, estudiantes de la Universidad de San Petersburgo. La programaci\u00f3n ya se ense\u00f1a en las escuelas y pronto comenzar\u00e1 en los jardines de infancia. <\/p>\n<p>La segunda necesidad es un enfoque cient\u00edfico. Con la Tabla Peri\u00f3dica se descubrieron nuevos elementos y se corrigi\u00f3 la informaci\u00f3n sobre los antiguos. Tambi\u00e9n ayud\u00f3 en la creaci\u00f3n del modelo at\u00f3mico (1911). Y as\u00ed sucesivamente. <\/p>\n<p>La tercera necesidad es clarificar el concepto de programa. <\/p>\n<p>La programaci\u00f3n moderna se ha quedado estancada en la d\u00e9cada de 1950. En ese entonces, los programas eran simples, y las m\u00e1quinas y lenguajes de m\u00e1quina, complejos, por lo que todo giraba en torno a las m\u00e1quinas y los lenguajes. <\/p>\n<p>Ahora todo es lo contrario: los programas son complejos y primordiales, los lenguajes son simples y secundarios. Esto se llama un enfoque aplicado, que parece familiar para muchos. Pero a los estudiantes y desarrolladores a\u00fan se les sigue convenciendo de que todo sigue igual. <\/p>\n<p>Lo que nos lleva a la primera lecci\u00f3n del profesor adjunto Mendel\u00e9yev. \u00bfQu\u00e9 decirles a los de primer a\u00f1o? \u00bfD\u00f3nde est\u00e1 la verdad? Esa es la cuesti\u00f3n. <\/p>\n<p>Su respuesta se ofrece en el libro 'Matryoshka C. Sistema en capas del lenguaje de programaci\u00f3n'. Adem\u00e1s, est\u00e1 dirigido no solo a estudiantes, sino tambi\u00e9n a programadores preparados, ya que buscar la verdad y cambiar la perspectiva deber\u00eda ser su tarea, es decir, nuestra. <\/p>\n<p>A continuaci\u00f3n, se presenta un resumen del libro. <\/p>\n<h2>1. Introducci\u00f3n<\/h2>\n<p>\nEn 1969 se cre\u00f3 el lenguaje C, que se ha convertido en un lenguaje de programaci\u00f3n fundamental y ha permanecido as\u00ed durante 50 a\u00f1os. \u00bfPor qu\u00e9 es esto? En primer lugar, porque C es un <i>lenguaje aplicado<\/i> , que otorga un aspecto <i>humano<\/i> en lugar de <i>mec\u00e1nico<\/i>. Este logro ha sido consolidado por los lenguajes de la familia C: C++, JavaScript, PHP, Java, C# y otros. En segundo lugar, es un lenguaje breve y hermoso. <\/p>\n<p>Sin embargo, el propio lenguaje C suele confundirse con el ensamblador, complicando y distorsionando as\u00ed su percepci\u00f3n. La otra extrema es imponer sobre el lenguaje una supuesta \u00abfilosof\u00eda\u00bb: procedural, orientada a objetos, funcional, compilada, interpretada, tipada, etc. Esto a\u00f1ade emociones, pero no ayuda a describir mejor el lenguaje. <\/p>\n<p>La verdad se encuentra en el medio, y en el caso del lenguaje C, est\u00e1 estrictamente en el medio entre la percepci\u00f3n filos\u00f3fica y la mec\u00e1nica. <\/p>\n<p>El lenguaje C no es aut\u00f3nomo, se rige por el lenguaje escrito habitual, y al mismo tiempo, controla el lenguaje ensamblador. Esta posici\u00f3n describe <i>El modelo del discurso del programa<\/i>, seg\u00fan el cual el programa se divide en tres tipos subordinados: discurso, c\u00f3digo y comandos. El lenguaje C es responsable del segundo, el tipo c\u00f3digo. <\/p>\n<p>Al definir el lugar del lenguaje en el programa, se puede organizar la informaci\u00f3n sobre \u00e9l, lo que crea <i>El sistema de capas del lenguaje del programa<\/i>, que representa el lenguaje C en el esp\u00edritu del sistema de Mendeleiev \u2014 en una sola p\u00e1gina. <\/p>\n<p>El sistema se construye considerando <i>la generalidad de los lenguajes aplicados<\/i>, que surge de su subordinaci\u00f3n del discurso. Un conjunto de unidades de la Matrioska C permite describir y comparar diferentes lenguajes, creando una serie de Matrioskas: C++, PHP, JavaScript, C#, MySQL, Python, etc. Es digno y correcto que diferentes lenguajes se describan mediante unidades del lenguaje fundamental. <\/p>\n<h2>2. CAP\u00cdTULO 1. El modelo del discurso del programa. Un C comprensible<\/h2>\n<p>\nEn el primer cap\u00edtulo se presenta <i>el modelo del discurso del programa<\/i>, que refleja un enfoque aplicado. Seg\u00fan este, el programa tiene tres tipos secuenciales evidentes: <\/p>\n<ol>\n<li>discurso \u2014 el discurso directo del programador que resuelve la tarea, <\/li>\n<li>c\u00f3digo \u2014 la codificaci\u00f3n de la soluci\u00f3n en forma matem\u00e1tica en el lenguaje C (o en cualquier otro)<\/li>\n<li>y comandos \u2014 los comandos m\u00e1quina inmediatos. <\/li>\n<\/ol>\n<p>\nEl modelo del discurso explica por qu\u00e9 C es un lenguaje simple y comprensible. C se construye a imagen y semejanza de nuestro habitual discurso humano. <\/p>\n<p>El primer tipo de programa es el habla directa del programador. El discurso corresponde al pensamiento humano. Los programadores principiantes escriben programas usando el habla, primero en ruso, y luego traduciendo paso a paso las acciones al lenguaje de c\u00f3digo. Y es precisamente este modelo el que dio origen al lenguaje C. <\/p>\n<p>Las conclusiones del programador, expresadas en palabras, se transforman en un formato num\u00e9rico de c\u00f3digo. Esta transformaci\u00f3n se debe llamar <i>reflejo<\/i>, ya que el habla y el c\u00f3digo tienen una naturaleza com\u00fan (reflejo \u2014 nacimiento \u2014 g\u00e9nero). Esto es bastante evidente si se compara el formato verbal (a la izquierda) y el formato de c\u00f3digo (a la derecha) del programa. <\/p>\n<p><img decoding=\"async\" alt=\"Matrushka C. Sistema de capas del lenguaje de programaci\u00f3n\" src=\"\/wp-content\/uploads\/2019\/05\/e88d13730660ebac1d661bb2d34a33d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs curioso que el reflejo ocurre de manera muy simple \u2014 con solo dos tipos de expresiones. <\/p>\n<p>Sin embargo, la descripci\u00f3n moderna del lenguaje C (desde 1978) no contiene una lista suficiente de t\u00e9rminos ni para describir el lenguaje en general, ni para la tarea de reflejar en particular. Por lo tanto, nos vemos obligados a ser creativos e introducir estos t\u00e9rminos.<\/p>\n<p>La elecci\u00f3n de palabras debe ser precisa y clara. Para ello se necesit\u00f3 un enfoque especial, que se expresa brevemente as\u00ed: uso estricto del idioma nativo. Para los ingleses, esto ser\u00eda el ingl\u00e9s, pero no somos ingleses. As\u00ed que utilizamos lo que tenemos y nos esforzamos por hablar en ruso. <\/p>\n<p>El reflejo se realiza mediante dos tipos de expresiones: <\/p>\n<ol>\n<li><i>c\u00e1lculo <\/i>(Cc) \u2014 refleja el cambio de propiedades de un objeto. La propiedad del objeto se expresa mediante un n\u00famero, as\u00ed que la acci\u00f3n sobre la propiedad es una acci\u00f3n sobre el n\u00famero \u2014 una operaci\u00f3n. <\/li>\n<li><i>subordinaci\u00f3n <\/i>(Ps) \u2014 refleja el cambio en el orden de las acciones. El modelo de Ps es la oraci\u00f3n compuesta subordinada en el habla, por lo que la mayor\u00eda de las formas de Ps comienzan con conjunciones subordinantes como \"si\", \"de lo contrario\", \"mientras\", \"para\". Otras formas de Ps las complementan. <\/li>\n<\/ol>\n<p>\nPor cierto, \u00bfpuedes creer que en la descripci\u00f3n de C no hay un nombre para las expresiones de c\u00e1lculo \u2014 simplemente se llaman \"expresiones\"? Despu\u00e9s de esto, no sorprende la falta de un nombre y de una combinaci\u00f3n para el g\u00e9nero de subordinaci\u00f3n, y en general la escasez de nombres, definiciones y generalizaciones. Todo esto se debe a que el famoso K\/R (\"El lenguaje C\", Kernighan\/Ritchie, 1978) no es una descripci\u00f3n, sino una gu\u00eda de uso del lenguaje. <\/p>\n<p>Sin embargo, a\u00fan nos gustar\u00eda tener una descripci\u00f3n del lenguaje. Por lo tanto, se propone <i>El sistema de capas del lenguaje del programa<\/i>. <\/p>\n<h2>3. CAP\u00cdTULO 2. Sistema por capas. Breve C<\/h2>\n<p>\nCualquier descripci\u00f3n debe ser precisa y extremadamente breve. En el caso del lenguaje del programa, una descripci\u00f3n frontal es dif\u00edcil. <\/p>\n<p>Aqu\u00ed tenemos un programa. Se compone de m\u00f3dulos. Los m\u00f3dulos est\u00e1n formados por subprogramas y selecciones (structure). Los subprogramas se componen de expresiones individuales: declaraciones, c\u00e1lculos, subordinaciones. Hay diez tipos de subordinaciones. Las subordinaciones conectan subniveles y subprogramas. Tambi\u00e9n hay varias declaraciones. Sin embargo, las declaraciones no solo se incluyen en subprogramas y subniveles, sino tambi\u00e9n en m\u00f3dulos y selecciones. Y la mayor\u00eda de las expresiones est\u00e1n formadas por palabras que son tan dif\u00edciles de describir que generalmente se presentan en dos listas: palabras base y derivadas, con las que se aprender\u00e1 a lo largo de todo el estudio y aplicaci\u00f3n del lenguaje. Agreguemos a esto los signos de puntuaci\u00f3n y otra serie de expresiones. <\/p>\n<p>En esta exposici\u00f3n, es dif\u00edcil entender qui\u00e9n est\u00e1 sobre qui\u00e9n. <\/p>\n<p>Un enfoque jer\u00e1rquico directo para describir el lenguaje ser\u00eda excesivamente complejo. La b\u00fasqueda de caminos indirectos conduce a la descripci\u00f3n del lenguaje basada en su naturaleza verbal y su aspecto de comandos. As\u00ed naci\u00f3 el Sistema de Capas, que coincide parcialmente con el Sistema Peri\u00f3dico de Mendel\u00e9yev, que tambi\u00e9n es <i>capa<\/i>. Como se descubri\u00f3 42 a\u00f1os despu\u00e9s de su publicaci\u00f3n (1869), la periodicidad del sistema est\u00e1 relacionada con los <i>capas <\/i>electr\u00f3nicas (1911, modelo del \u00e1tomo de Bohr-Rutherford). Adem\u00e1s, tanto el Sistema de Capas como el Sistema Peri\u00f3dico comparten la disposici\u00f3n tabular de todas las unidades en una sola p\u00e1gina. <\/p>\n<p>La descripci\u00f3n de las unidades del lenguaje resulta ser breve: solo 10 clases de expresiones y 8 clases de otras unidades, adem\u00e1s de ser sustantiva y visual. Aunque es poco habitual para un primer encuentro. <\/p>\n<p>Las unidades del lenguaje se dividen en 6 niveles:<\/p>\n<ol>\n<li>\u00f3rdenes \u2014 filas de la tabla<\/li>\n<li>secciones \u2014 grupos especiales de clases (partes de la primera fila)<\/li>\n<li>clases \u2014 celdas (nivel principal de divisi\u00f3n)<\/li>\n<li>superclases \u2014 separadores de especies (nivel raro)<\/li>\n<li>especies \u2014 f\u00f3rmulas de unidades en la parte inferior de la celda o por separado<\/li>\n<li>modelos \u2014 las propias unidades (solo para palabras)<\/li>\n<\/ol>\n<p>\nLos modelos de palabras son descritos por <i>el diccionario<\/i> \u2014 un subsistema separado compuesto por los mismos seis niveles. <\/p>\n<p>El componente verbal del lenguaje C es bastante evidente, aunque todav\u00eda merece una descripci\u00f3n. Por otro lado, la parte de comandos del lenguaje est\u00e1 relacionada con el control de la compilaci\u00f3n, durante la cual se crea un tercer tipo de programa \u2014 el de comandos. Aqu\u00ed llegamos al aspecto m\u00e1s emocionante del lenguaje C \u2014 la belleza. <\/p>\n<h2>4. CAP\u00cdTULOS SIGUIENTES. Un C hermoso<\/h2>\n<p>\nEl lenguaje C es fundamental en la programaci\u00f3n moderna. \u00bfPor qu\u00e9? En primer lugar, por su mayor correspondencia con el lenguaje humano. En segundo lugar, porque super\u00f3 elegantemente las limitaciones del procesamiento num\u00e9rico por m\u00e1quinas.<\/p>\n<p>\u00bfQu\u00e9 propuso C exactamente? Imagen y capa. <\/p>\n<p>La palabra 'imagen' es la traducci\u00f3n del t\u00e9rmino ingl\u00e9s 'type', que proviene del griego 'prototypo' \u2014 'preimagen'. En espa\u00f1ol, la palabra 'tipo' no captura con precisi\u00f3n el significado fundamental del concepto, adem\u00e1s de que se confunde con el significado funcional de 'clase'. <\/p>\n<p>Inicialmente, la imagen abordaba un problema puramente mec\u00e1nico de c\u00e1lculo, y luego se convirti\u00f3 en una pista de despegue para el surgimiento de los lenguajes orientados a objetos. <\/p>\n<p>La capa abord\u00f3 inmediatamente varias tareas, tanto mec\u00e1nicas como aplicativas. Por lo tanto, el an\u00e1lisis comenzar\u00e1 con la imagen unidimensional y pasar\u00e1 a la capa multidimensional. <\/p>\n<p>Una de las caracter\u00edsticas desagradables de la programaci\u00f3n hist\u00f3rica es que la mayor\u00eda de los conceptos, incluidos los fundamentales, se presentan sin definiciones. 'El lenguaje de programaci\u00f3n (nombre de r\u00edo) tiene un tipo num\u00e9rico entero y flotante...' \u2014 y contin\u00faan. \u00bfQu\u00e9 es exactamente un 'tipo' (imagen)? No es necesario definirlo, porque los autores mismos no lo comprenden del todo y lo dejar\u00e1n 'para mayor claridad'. Si se les presiona, dar\u00e1n una definici\u00f3n vaga e in\u00fatil. Ayuda mucho esconderse detr\u00e1s de palabras extranjeras: para los autores rusos \u2014 detr\u00e1s de las inglesas (type), para los ingleses \u2014 detr\u00e1s de las francesas (subroutine), griegas (polimorfismo), latinas (encapsulamiento) o sus combinaciones (polimorfismo ad-hoc). <\/p>\n<p>Pero ese no es nuestro destino. Nuestra elecci\u00f3n es definiciones claras en puro espa\u00f1ol. <\/p>\n<h3>Imagen<\/h3>\n<p>\n<i>Imagen<\/i> \u2014 es un nombre protot\u00edpico de una magnitud, definiendo 1) las propiedades propias de la magnitud y 2) la selecci\u00f3n de operaciones para dicha magnitud. <\/p>\n<p>La palabra 'tipo' (clase) corresponde a la primera parte de la definici\u00f3n: 'propiedades propias de la magnitud'. Pero el significado principal de la imagen se encuentra en la segunda parte: 'selecci\u00f3n de operaciones para las magnitudes'.<\/p>\n<p>El punto de partida para introducir la imagen en el lenguaje C es un c\u00e1lculo ordinario, como la operaci\u00f3n de suma. <\/p>\n<p><i>Matem\u00e1tica<\/i> papel, ya sea escrita a mano o mecanografiada, no hace distinci\u00f3n significativa entre tipos de n\u00fameros, asumi\u00e9ndolos generalmente como reales. Por lo tanto, sus operaciones de procesamiento son un\u00edvocas.<\/p>\n<p><i>M\u00e1quina<\/i> La matem\u00e1tica divide estrictamente los n\u00fameros en enteros y fraccionarios. Diferentes tipos de n\u00fameros se almacenan de manera diferente en la memoria y son procesados por diferentes instrucciones del procesador. Por ejemplo, las instrucciones para sumar n\u00fameros enteros y fraccionarios son dos instrucciones diferentes, correspondientes a dos n\u00facleos distintos del procesador. Sin embargo, no existe una instrucci\u00f3n para sumar argumentos enteros y fraccionarios. <\/p>\n<p><i>Aplicada<\/i> La matem\u00e1tica, es decir, el lenguaje C, divide los tipos de n\u00fameros, pero unifica las operaciones: la suma para n\u00fameros enteros y\/o fraccionarios se escribe con un solo signo de operaci\u00f3n.<\/p>\n<p>La clara definici\u00f3n del concepto de imagen permite hablar con precisi\u00f3n sobre otros dos conceptos: <i>magnitud <\/i>y <i>operaci\u00f3n<\/i>. <\/p>\n<h3>Magnitud y operaci\u00f3n<\/h3>\n<p>\n<i>Magnitud <\/i> \u2014 n\u00famero procesado.<\/p>\n<p><i>Operaci\u00f3n<\/i> \u2014 procesamiento de los valores de las magnitudes originales (argumentos) para obtener el n\u00famero final (resultado). <\/p>\n<p>Magnitud y operaci\u00f3n est\u00e1n interrelacionadas. Cada operaci\u00f3n es una magnitud, ya que tiene un resultado num\u00e9rico. Y cada magnitud es el resultado de trasladar un valor al registro del procesador\/o desde el procesador, es decir, el resultado de una operaci\u00f3n. A pesar de esta interrelaci\u00f3n, lo principal es la posibilidad de describirlas de manera separada, aunque con la repetici\u00f3n de una palabra en diferentes secciones del diccionario, como ocurre en ma3. <\/p>\n<p>El enfoque de m\u00e1quina divid\u00eda todos los n\u00fameros utilizados por el programador en <i>comando <\/i>y <i>sobre<\/i>. Antes, tanto unos como otros eran en efecto n\u00fameros, por ejemplo, las instrucciones se escrib\u00edan en c\u00f3digos num\u00e9ricos. Sin embargo, en los lenguajes aplicados las instrucciones dejaron de ser n\u00fameros y se convirtieron en <i>palabras <\/i>y <i>signos de acci\u00f3n<\/i>. Los \u00fanicos que quedaron como \"datos\" eran los n\u00fameros, pero seguir llam\u00e1ndolos as\u00ed es absurdo, porque al pasar de la perspectiva matem\u00e1tica a la de m\u00e1quina, los n\u00fameros son magnitudes que se dividen en originales (<i>sobre<\/i>) y finales (<i>buscados<\/i>). \"Un dato desconocido\" sonar\u00eda muy tonto. <\/p>\n<p>Las instrucciones tambi\u00e9n se dividieron en dos tipos de acciones: matem\u00e1ticas y de servicio. Las acciones matem\u00e1ticas son operaciones. Las de servicio las abordaremos m\u00e1s tarde. <\/p>\n<p>En los lenguajes C, las operaciones matem\u00e1ticas unitarias, o singulares, en papel y m\u00e1quina casi se convierten en m\u00faltiples. <\/p>\n<p>Operaciones m\u00faltiples: varias operaciones hom\u00f3nimas con diferentes representaciones de argumentos y acciones diferentes, pero similares en significado. <\/p>\n<p>Los argumentos enteros corresponden a una operaci\u00f3n entera, y los fraccionarios a una fraccionaria. Esta diferencia es especialmente evidente en la operaci\u00f3n de divisi\u00f3n, cuando la expresi\u00f3n 1\/2 da un resultado de 0 y no 0,5. Esta notaci\u00f3n no se adhiere a las reglas de matem\u00e1ticas en papel, pero el lenguaje C no busca cumplirlas (a diferencia de Fortran) \u2014 juega seg\u00fan sus propias <i>reglas.<\/i> En caso de mezclar n\u00fameros enteros y fraccionarios, se activa la \u00fanica correcta<\/p>\n<p>conversi\u00f3n de valores de argumento <i>\u2014 una transformaci\u00f3n selectiva de un valor de una forma a otra. Efectivamente, al sumar un n\u00famero entero y un n\u00famero fraccionario, el resultado es fraccionario, por lo que la forma de la operaci\u00f3n<\/i> escoge <i>la operaci\u00f3n de transformaci\u00f3n del argumento entero en un valor fraccionario. <\/i>Una serie de operaciones permanece no <\/p>\n<p>m\u00faltiples <i>singulares.<\/i>, y <i>Tales operaciones est\u00e1n definidas solo para un tipo de argumentos: el resto de la divisi\u00f3n \u2014 argumentos enteros, la colocaci\u00f3n (operaciones a nivel de bits) \u2014 enteros naturales. Ma3 indica la multiplicidad de las operaciones con los signos (#^) indicando las formas para las cuales la operaci\u00f3n est\u00e1 definida. Esta es una propiedad importante, pero antes se omit\u00eda, de cada operaci\u00f3n.<\/i>Todas las funciones son operaciones unitarias arbitrarias. La excepci\u00f3n son los operadores \u2014 <\/p>\n<p>funciones sin par\u00e9ntesis <i>, integradas en el lenguaje (operaciones primarias).<\/i>La asistencia <\/p>\n<h3>es la acci\u00f3n complementaria a la operaci\u00f3n.<\/h3>\n<p>\n<i>es la acci\u00f3n complementaria a la operaci\u00f3n. <\/i> Si consideramos la operaci\u00f3n como la acci\u00f3n principal, podemos destacar dos acciones complementarias que aseguran la operaci\u00f3n y se distinguen de ella. Son 1) el control de la variable y 2) la subordinaci\u00f3n. Esta acci\u00f3n se denomina<\/p>\n<p>asistencia. <i>Aqu\u00ed es necesario desviarse y hablar por separado sobre las traducciones al ruso de los libros de texto sobre programaci\u00f3n. En el texto K\/R se introdujo una nueva palabra<\/i>.<\/p>\n<p>statement <i>que intent\u00f3 dividir el concepto del comando de m\u00e1quina en diferentes acciones: 1) operaci\u00f3n, 2) declaraci\u00f3n y 3) subordinaci\u00f3n (denominadas \"estructuras de control\"). Este intento fue sepultado por los traductores rusos, reemplazando \"expresi\u00f3n\" por \"operador\", que: <\/i>se convirti\u00f3 en sin\u00f3nimo de la palabra de m\u00e1quina \"comando\",<\/p>\n<ol>\n<li>result\u00f3 ser sin\u00f3nimo de la frase \"signo de acci\u00f3n\", <\/li>\n<li>y tambi\u00e9n adquiri\u00f3 un n\u00famero ilimitado de significados adicionales. Es decir, se transform\u00f3 en algo parecido al art\u00edculo indefinido ingl\u00e9s \"uh...\".<\/li>\n<li>Consideremos las acciones complementarias, o <\/li>\n<\/ol>\n<p>\nasistencias. <i>Control de la variable.<\/i>.<\/p>\n<h4><i>Gesti\u00f3n de variable<\/i> <\/h4>\n<p>\n<i>Gesti\u00f3n de variable<\/i> (UP) \u2014 creaci\u00f3n\/eliminaci\u00f3n de celdas de variable. <br \/>\nLa UP ocurre de manera impl\u00edcita al declarar una variable, que ya se escribe por otro motivo: para indicar la magnitud. Solo se gestionan de manera expl\u00edcita un tipo. <i>de variables adicionales<\/i> utilizando las funciones malloc() y free(). <\/p>\n<p>Cabe se\u00f1alar que las acciones impl\u00edcitas son m\u00e1s convenientes para la escritura, ya que no requieren nada que se escriba, pero son m\u00e1s dif\u00edciles de entender: son m\u00e1s complejas de considerar e interpretar. <\/p>\n<h4><i>Subordinaci\u00f3n<\/i><\/h4>\n<p>\n<i>Subordinaci\u00f3n <\/i> \u2014 conexi\u00f3n\/desconexi\u00f3n de secciones de capas. <\/p>\n<p>El lenguaje C propuso una forma aplicada de controlar el orden de las acciones, diferente de la ensambladora: la subordinaci\u00f3n. Refleja y desarrolla una oraci\u00f3n subordinada con una clara separaci\u00f3n entre la parte principal (oraci\u00f3n de subordinaci\u00f3n) y la parte subordinada (secciones de subnivel\/subprograma). <\/p>\n<p>Tanto la declaraci\u00f3n como la subordinaci\u00f3n se basan completamente en el concepto de <i>capa<\/i>. <\/p>\n<h3>Capa<\/h3>\n<p>\n<i>Capa <\/i> \u2014 es un conjunto restringido de expresiones seleccionadas en un solo nivel. <\/p>\n<p>La capa asumi\u00f3 expl\u00edcita e impl\u00edcitamente la realizaci\u00f3n de varias tareas a la vez: <\/p>\n<ol>\n<li>ordenar el programa,<\/li>\n<li>limitar la visibilidad de los nombres (impl\u00edcitamente),<\/li>\n<li>gestionar variables (celdas de memoria) (impl\u00edcitamente),<\/li>\n<li>definir secciones subordinadas para la subordinaci\u00f3n,<\/li>\n<li>definir funciones y colecciones, y otras. <\/li>\n<\/ol>\n<p>\nEn los lenguajes de m\u00e1quina no exist\u00eda el concepto de capa, por lo que no apareci\u00f3 en K\/R, y si algo no exist\u00eda all\u00ed, introducirlo en libros posteriores ser\u00eda herej\u00eda y pensamiento libre. Por lo tanto, el concepto de capa no apareci\u00f3 en absoluto, aunque es extremadamente \u00fatil y bastante obvio. <\/p>\n<p>Sin la capa, es imposible explicar de manera breve y clara muchas acciones y reglas del programa. Por ejemplo, por qu\u00e9 un simple como tres centavos goto es malo, mientras que un elaborado while es bueno. Solo se puede quejarse impotentemente, como lo hizo Dijkstra (\"la calificaci\u00f3n de los programadores es una funci\u00f3n inversamente dependiente de la frecuencia con que aparezcan operadores goto en sus programas\". En resumen, solo los tontos usan goto. El nivel de justificaci\u00f3n \u2014 Dios). Sin embargo, esto no es tan grave si tus libros no est\u00e1n obligados a explicar nada, pero, como ya dijimos, no es nuestro destino. <\/p>\n<p>Por cierto, se puede suponer que Den Ritchie dej\u00f3 la instrucci\u00f3n goto precisamente como clave para buscar un concepto no nombrado, porque no hab\u00eda necesidad ni belleza en la expresi\u00f3n goto. Sin embargo, hab\u00eda una necesidad de una explicaci\u00f3n simple y clara de los nuevos principios del lenguaje, los cuales Ritchie no quer\u00eda dar, y que se basan precisamente en el concepto <i>capa<\/i>. <\/p>\n<h3>Desviaci\u00f3n<\/h3>\n<p>\n<i>Desviaci\u00f3n <\/i> \u2014 cambio de las propiedades habituales del nuevo nombre. <\/p>\n<p>La desviaci\u00f3n m\u00e1s importante est\u00e1 relacionada con las propiedades de capas del programa y se describe con una sola palabra: \u00abstatic\u00bb, que tiene diferentes significados en cada tipo de capa. <\/p>\n<h2>5. \u00daLTIMO CAP\u00cdTULO. La Comunalidad de los Lenguajes Aplicados<\/h2>\n<p>\nLos lenguajes aplicados son <i>figurativos <\/i>lenguajes (que tienen una imagen, \u00abtipados\u00bb). Se basan en el uso expl\u00edcito o impl\u00edcito de una imagen. Aqu\u00ed nuevamente surge una contradicci\u00f3n: la imagen expl\u00edcita es m\u00e1s comprensible, pero menos conveniente, y viceversa. <\/p>\n<p><img decoding=\"async\" alt=\"Matrushka C. Sistema de capas del lenguaje de programaci\u00f3n\" src=\"\/wp-content\/uploads\/2019\/05\/7d0fd49d678736a023f471b54847be7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>(La tabla todav\u00eda no ha sido proporcionada, por lo que se da la tabla como imagen.)<\/i><\/p>\n<p>Despu\u00e9s de C, el desarrollo de los lenguajes aplicados ha ido por el camino del aumento de su figuratividad. Lo m\u00e1s importante para entender la alta figuratividad es el descendiente directo de C: el lenguaje C++. Desarrolla la idea de la selecci\u00f3n arbitraria de operaciones sobre valores y la encarna en base a la expresi\u00f3n de selecci\u00f3n de C, que recibe un nuevo nombre: objeto. Sin embargo, C++ no es tan breve y expresivo como C, debido a la sobrecarga de nuevos tipos de selecci\u00f3n y las reglas asociadas. Hablaremos sobre la \u00absobrecarga\u00bb. <\/p>\n<h3>Sobrecarga y polimorfismo <\/h3>\n<p>\nLa palabra \u00absobrecarga\u00bb (overload) es un t\u00e9rmino obsoleto del enfoque de m\u00e1quina que denota la creaci\u00f3n de <i>m\u00faltiples operaciones<\/i>. <\/p>\n<p>Los programadores (sistem\u00e1ticos) de m\u00e1quinas <i>la multiplicidad <\/i>de las operaciones podr\u00eda molestar: \u00ab\u00bfQu\u00e9 significa este signo (+): sumar n\u00fameros enteros, sumar n\u00fameros decimales o, en general, un desplazamiento? \u00a1En nuestra \u00e9poca no se escrib\u00eda as\u00ed!\u00bb De aqu\u00ed el matiz negativo de la palabra elegida (\u00abexceso\u00bb, \u00abcansado\u00bb). Para el programador aplicado, las operaciones m\u00faltiples son la piedra angular, el principal logro y legado del lenguaje C, tan naturales que a menudo no se reconocen. <\/p>\n<p>En el lenguaje C++ <i>la multiplicidad<\/i> se ha extendido no solo a las operaciones iniciales, sino tambi\u00e9n a las funciones \u2014 tanto individuales como agrupadas en clases \u2014 m\u00e9todos. Junto con m\u00faltiples m\u00e9todos, surgi\u00f3 la posibilidad de redefinirlos en clases extendidas, que se denomin\u00f3 de manera confusa 'polimorfismo'. La combinaci\u00f3n de polimorfismo y sobrecarga gener\u00f3 una mezcla explosiva, que se dividi\u00f3 en dos polimorfismos: 'verdadero' y 'ad-hoc'. Comprender esto solo es posible a pesar de los nombres asignados. Extranjeros nombres han pavimentado el camino hacia ad. <\/p>\n<p>La declaraci\u00f3n del tipo 'sobrecarga' se expresa mejor con la palabra <i>re-declaraci\u00f3n <\/i> \u2014 a\u00f1adiendo una declaraci\u00f3n de la funci\u00f3n hom\u00f3nima con argumentos de otro tipo. <\/p>\n<p>La declaraci\u00f3n del tipo 'polimorfismo' se expresa mejor con la palabra <i>re-declaraci\u00f3n<\/i> \u2014 una declaraci\u00f3n que sobrescribe en una nueva capa de extensi\u00f3n la funci\u00f3n hom\u00f3nima con argumentos del mismo tipo. <\/p>\n<p>Entonces ser\u00e1 f\u00e1cil entender que los m\u00e9todos hom\u00f3nimos de diferentes tipos (argumentos) \u2014 <i>se re-declaran<\/i>, y de un mismo tipo \u2014 <i>se re-declaran<\/i>. <\/p>\n<p>Las palabras rusas resuelven. <\/p>\n<h3>Pista de aterrizaje<\/h3>\n<p>\nLa consideraci\u00f3n de los conceptos de lenguajes de alto nivel confirma la importancia de definir claramente conceptos fundamentales. Con un C bien descrito, el aprendizaje de lenguajes de alto nivel ser\u00e1 f\u00e1cil y agradable. <\/p>\n<p>Esto es especialmente importante para <i>lenguajes de alto nivel impl\u00edcitos<\/i> (PHP, JavaScript). Para ellos, la importancia de los objetos (tipos compuestos) se vuelve a\u00fan m\u00e1s relevante que en C++, pero el mismo concepto de tipo se vuelve impl\u00edcito y dif\u00edcil de captar. Desde la perspectiva de la conveniencia, se han vuelto m\u00e1s sencillos, pero desde el punto de vista de la comprensi\u00f3n, m\u00e1s complicados. <\/p>\n<p>Por ello, se deber\u00eda comenzar el estudio de los lenguajes de programaci\u00f3n con el lenguaje C y avanzar en el orden de aparici\u00f3n de los lenguajes de la familia C. <\/p>\n<p>Lo mismo ocurre con la descripci\u00f3n de los lenguajes. Diferentes lenguajes tienen un conjunto coincidente o menor de tipos de entidades que el lenguaje C. El n\u00famero de tipos y modelos puede variar en ambas direcciones: en C++ hay m\u00e1s tipos que en C, en JavaScript \u2014 menos. <\/p>\n<p>Un lenguaje que merece menci\u00f3n especial es MySQL. A primera vista, parece no tener nada en com\u00fan, pero se describe maravillosamente con la Matryoshka, y familiarizarse con \u00e9l se vuelve m\u00e1s r\u00e1pido y f\u00e1cil. Lo que es importante, considerando su relevancia para la web \u2014 la carretera de servicio de la programaci\u00f3n moderna. Donde est\u00e1 MySQL, tambi\u00e9n est\u00e1n los dem\u00e1s SQL. Y, por supuesto, varios Fortrans-Pascals-Pythons tambi\u00e9n se describen con la Matryoshka, cuando tenga tiempo. <\/p>\n<p>As\u00ed que nos esperan grandes cosas: una descripci\u00f3n pr\u00e1ctica del lenguaje C y una descripci\u00f3n unificada de los lenguajes que le siguen. \"Nuestras metas son claras, las tareas definidas. \u00a1A trabajar, camaradas! (Aplausos tumultuosos y prolongados que se convierten en una ovaci\u00f3n. Todos se ponen de pie.)\" <\/p>\n<p>Sus opiniones ser\u00e1n escuchadas con gran atenci\u00f3n, su ayuda en la creaci\u00f3n del sitio de matryoshkas ser\u00e1 recibida con inmensa gratitud. Informaci\u00f3n m\u00e1s completa sobre el libro se encuentra en un sitio h\u00e1bilmente escondido dentro de la Matryoshka C.<br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/452328\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u0438\u043c\u0438\u044e \u0431\u0435\u0437 \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041c\u0435\u043d\u0434\u0435\u043b\u0435\u0435\u0432\u0430 (1869). \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0433\u043e\u043b\u043e\u0432\u0435, \u043f\u0440\u0438\u0447\u0451\u043c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435\u2026 (\u0422\u043e\u0433\u0434\u0430 \u2014 60.) \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0440\u0430\u0437\u0443 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u0435 \u0436\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0430, \u0442\u043e\u0442 \u0436\u0435 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0435\u0441\u043f\u043e\u0440\u044f\u0434\u043e\u043a. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0436\u0438\u0442\u044c \u0447\u0443\u0432\u0441\u0442\u0432\u0430 \u0445\u0438\u043c\u0438\u043a\u043e\u0432 XIX \u0432\u0435\u043a\u0430, \u043a\u043e\u0433\u0434\u0430 \u0438\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0432\u0441\u0435 \u0438\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25550,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-33886","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u0438\u043c\u0438\u044e \u0431\u0435\u0437 \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041c\u0435\u043d\u0434\u0435\u043b\u0435\u0435\u0432\u0430 (1869).\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\udd47Matryoshka C. Sistema de capas del lenguaje de programaci\u00f3n | ProHoster","description":"Intentemos imaginar la qu\u00edmica sin la Tabla Peri\u00f3dica de Mendel\u00e9yev (1869).","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/33886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=33886"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/33886\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/25550"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=33886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=33886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=33886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}