{"id":16179,"date":"2022-07-16T19:06:27","date_gmt":"2022-07-16T19:06:27","guid":{"rendered":"https:\/\/blogs.ugto.mx\/rea\/?p=16179"},"modified":"2022-09-24T03:01:24","modified_gmt":"2022-09-24T03:01:24","slug":"clase-digital-14-generacion-de-codigo-intermedio-expresiones","status":"publish","type":"post","link":"https:\/\/blogs.ugto.mx\/rea\/clase-digital-14-generacion-de-codigo-intermedio-expresiones\/","title":{"rendered":"Clase digital 14. Generaci\u00f3n de c\u00f3digo intermedio: Expresiones"},"content":{"rendered":"\n\n\n<div class=\"wp-block-cover\" style=\"min-height:284px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-40 has-background-dim\"><\/span><img decoding=\"async\" class=\"wp-block-cover__image-background wp-image-18181\" alt=\"\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/yyum2snvnvu.jpg\" style=\"object-position:41% 17%\" data-object-fit=\"cover\" data-object-position=\"41% 17%\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1069\" class=\"wp-block-cover__image-background wp-image-18181\" alt=\"\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/yyum2snvnvu.jpg\" style=\"object-position:41% 17%\" data-object-fit=\"cover\" data-object-position=\"41% 17%\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/yyum2snvnvu.jpg 1600w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/yyum2snvnvu-300x200.jpg 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/yyum2snvnvu-1024x684.jpg 1024w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/yyum2snvnvu-768x513.jpg 768w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/yyum2snvnvu-1536x1026.jpg 1536w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/yyum2snvnvu-272x182.jpg 272w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/noscript><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<p class=\"has-text-align-center has-base-3-color has-text-color has-large-font-size wp-block-paragraph\">Generaci\u00f3n de c\u00f3digo intermedio: Expresiones<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"introduccion\">Introducci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Hola!&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Me complace enormemente saber de ti, espero que compartas mi emoci\u00f3n y te sumes con gran actitud y \u00e1nimo a esta clase.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta sesi\u00f3n aprenderemos sobre&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin entrar m\u00e1s en detalles,\u2026 \u00a1Comencemos!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Mucho \u00e9xito!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"desarrollo-del-tema\">Desarrollo del tema <\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Generaci\u00f3n de C\u00f3digo Intermedio<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>La generaci\u00f3n de c\u00f3digo intermedio es la interfaz entre el front-end y el back-end de un compilador.<\/li><li>Idealmente los detalles del lenguaje est\u00e1n confinados al front-end.<\/li><li>Los detalles de la m\u00e1quina objetivo est\u00e1n confinados al back-end.<\/li><li>La entrada del generador de c\u00f3digo intermedio es un \u00e1rbol sint\u00e1ctico que incluye tipos y atributos.<\/li><li>La salida del generador de c\u00f3digo intermedio es una representaci\u00f3n intermedia (IR) que es independiente del lenguaje fuente y de la m\u00e1quina objetivo.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfCu\u00e1l es el objetivo del generador de c\u00f3digo intermedio? Generar c\u00f3digo de una m\u00e1quina abstracta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El c\u00f3digo intermedio debe ser f\u00e1cil de generar.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C\u00f3digo de Tres Direcciones:<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Es una forma de representar el c\u00f3digo intermedio.<ul><li>Cada c\u00f3digo tiene a lo m\u00e1s un operador<br>y puede tener hasta tres direcciones.<\/li><\/ul><\/li><li>Cada direcci\u00f3n puede corresponder a:<ul><li>Nombre<\/li><li>Constante<\/li><li>Variable temporal<\/li><\/ul><\/li><li>Ejemplo:<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Cada c\u00f3digo intermedio se puede representar como: C\u00f3digo de Tres Direcciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El c\u00f3digo intermedio debe ser f\u00e1cil de traducir.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Estructura de datos para implementar c\u00f3digo intermedio:&nbsp;<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Cu\u00e1druples<ul><li>Tiene cuatro campos:&nbsp;<\/li><\/ul><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">op, arg1, arg2 y resultado<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Triples<ul><li>No usan variables temporales.<\/li><li>Hacen referencias a instrucciones.<\/li><\/ul><\/li><li>Triples indirectas.<ul><li>Usan una lista de punteros a triples.<\/li><\/ul><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Forma de Asignaci\u00f3n Simple Est\u00e1tica:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Facilita algunas optimizaciones.<\/li><li>Difiere de un c\u00f3digo de tres direcciones.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En que todas las asignaciones son a variables diferentes.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Generaci\u00f3n de C\u00f3digo para Expresiones:<\/h4>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.17.05.png\" alt=\"\" class=\"wp-image-18178\" width=\"605\" height=\"549\" \/><noscript><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.17.05.png\" alt=\"\" class=\"wp-image-18178\" width=\"605\" height=\"549\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.17.05.png 806w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.17.05-300x272.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.17.05-768x697.png 768w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\">Traducci\u00f3n Incremental:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Es una t\u00e9cnica que evita el uso de bloques de c\u00f3digo como atributos.<br>Esta asume que el c\u00f3digo intermedio generado se va acumulando en un bloque de c\u00f3digo \u00fanico en el orden correcto.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.16.47.png\" alt=\"\" class=\"wp-image-18179\" width=\"514\" height=\"352\" \/><noscript><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.16.47.png\" alt=\"\" class=\"wp-image-18179\" width=\"514\" height=\"352\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.16.47.png 685w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.16.47-300x205.png 300w\" sizes=\"auto, (max-width: 514px) 100vw, 514px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Direccionamiento de Elementos de Arreglos:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Acciones Sem\u00e1nticas para Arreglos:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conversiones entre Tipos:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De ampliaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De reducci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conversi\u00f3n para Evaluaci\u00f3n de Expresiones:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.16.06-1024x47.png\" alt=\"\" class=\"wp-image-18180\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"47\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.16.06-1024x47.png\" alt=\"\" class=\"wp-image-18180\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.16.06-1024x47.png 1024w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.16.06-300x14.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.16.06-768x35.png 768w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/Captura-de-Pantalla-2022-08-17-a-las-15.16.06.png 1223w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00f3mo se pueden solucionar las ambig\u00fcedades en las reglas de expresiones: Definiendo precedencia y asociatividad de operadores.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusi\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para recordar:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Te felicito por tu logro! Te invito a continuar con tu proceso formativo realizando y mandando la actividad asignada a esta clase. \u201cPerseverar es sin\u00f3nimo de tenacidad, no decaigas sigue perseverando en tu educaci\u00f3n\u201d. No olvides revisar el material de apoyo y si quedan dudas, consulta a tu asesor. Te encuentro en la siguiente clase. Hasta luego.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fuentes-de-informacion\">Fuentes de informaci\u00f3n<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.youtube.com\/watch?v=mnoXYi0v8ds\" target=\"_blank\" rel=\"noreferrer noopener\">Compiladores 2: 05 tipos, declaraciones y traducci\u00f3n de expresiones, 43:36 &#8211; 43:33 \u2013 54:19.<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n \u00a1Hola!&nbsp; Me complace enormemente saber de ti, espero que compartas mi emoci\u00f3n y te sumes con gran actitud y \u00e1nimo a esta clase.&nbsp; En esta sesi\u00f3n aprenderemos sobre&nbsp; Sin entrar m\u00e1s en detalles,\u2026 \u00a1Comencemos! \u00a1Mucho \u00e9xito! Desarrollo del tema Generaci\u00f3n de C\u00f3digo Intermedio La generaci\u00f3n de c\u00f3digo intermedio es la interfaz entre el front-end &#8230; <a title=\"Clase digital 14. Generaci\u00f3n de c\u00f3digo intermedio: Expresiones\" class=\"read-more\" href=\"https:\/\/blogs.ugto.mx\/rea\/clase-digital-14-generacion-de-codigo-intermedio-expresiones\/\" aria-label=\"Leer m\u00e1s sobre Clase digital 14. Generaci\u00f3n de c\u00f3digo intermedio: Expresiones\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":142,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[180,19,471],"tags":[41,472,473],"class_list":["post-16179","post","type-post","status-publish","format-standard","hentry","category-cideap","category-ingenieria-en-sistemas-computacionales","category-uda-compiladores","tag-clase-digital","tag-iili06025","tag-jose-ruiz-pinales"],"acf":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts\/16179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/users\/142"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/comments?post=16179"}],"version-history":[{"count":3,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts\/16179\/revisions"}],"predecessor-version":[{"id":19167,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts\/16179\/revisions\/19167"}],"wp:attachment":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/media?parent=16179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/categories?post=16179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/tags?post=16179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}