<?xml version="1.0"?>
<rss version="2.0">
   <channel>
      <title>GENERACIÓN DE CÓDIGO INTERMEDIO. by KARLA DANIELA PEREZ GONZALEZ</title>
      <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh</link>
      <description>María del Carmen Pérez Cruz 21590485 Emma Belén Márquez García 21590481 Karla Daniela Pérez González 21590486</description>
      <language>en-us</language>
      <pubDate>2025-09-25 23:15:03 UTC</pubDate>
      <lastBuildDate>2025-09-26 04:32:45 UTC</lastBuildDate>
      <webMaster>hello@padlet.com</webMaster>
      <image>
         <url></url>
      </image>
      <item>
         <title>Gramática aumentada</title>
         <author>l21590485</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604726934</link>
         <description><![CDATA[<p>Es una <strong>extensión de la gramática formal</strong> que define un lenguaje, pero incluye <strong>acciones semánticas o información extra</strong> que ayudan a generar código.</p><p><br></p><p>Se utiliza principalmente en <strong>compiladores</strong>, donde no solo interesa si el programa es sintácticamente correcto, sino <strong>qué debe hacer cada instrucción</strong>.</p><p><br></p>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112640222/90362acb7d2ab61a755e99f176e6aeed/image.png" />
         <pubDate>2025-09-25 23:46:48 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604726934</guid>
      </item>
      <item>
         <title>
Notación Polaca
</title>
         <author>l21590481</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604728642</link>
         <description><![CDATA[<ul><li><p>Inventada por Jan Łukasiewicz en 1920 para simplificar la lógica proposicional y las expresiones matemáticas.</p></li><li><p>El operador se coloca antes de los operandos, por ejemplo: <strong>+ 3 4</strong> en vez de <strong>3 + 4</strong>.</p></li><li><p>Elimina la necesidad de paréntesis en expresiones de aridad fija, lo que facilita el análisis automático.</p></li><li><p>Se utiliza en lenguajes como LISP y en sistemas de lógica formal.</p></li><li><p>Ejemplo: La expresión infija <strong>((15 / (7 - (1 + 1))) <em> 3) - (2 + (1 + 1))</em></strong><em> se convierte en polaca como </em><strong><em>- </em> / 15 - 7 + 1 1 3 + 2 + 1 1</strong>.</p></li><li><p>En lógica, cada operador tiene una letra específica: Negación (N), Conjunción (K), Disyunción (A), etc..</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112636520/5d9b881d45cb8942c6796e8dd31e8cb3/image.png" />
         <pubDate>2025-09-25 23:48:39 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604728642</guid>
      </item>
      <item>
         <title>Expresión aritmética</title>
         <author>l21590485</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604729796</link>
         <description><![CDATA[<p>Son combinaciones de <strong>constantes, variables y operadores aritméticos</strong> que producen un <strong>valor numérico</strong>.</p><p><br/></p><p><strong>Operadores comunes:</strong> +, -, *, /, % (mod).</p><p><br/></p><p>Se pueden <strong>anidar</strong>, usando paréntesis para indicar prioridad.</p><p><br/></p><p>Ejemplo complejo:</p><p><br/></p><p>resultado = (a + b) * (c - d) / e</p><p><br/></p><p>En un compilador, cada expresión aritmética puede traducirse a <strong>código de tres direcciones</strong> o instrucciones intermedias, para facilitar la evaluación paso a paso.</p><p><br/></p>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112640222/034dc0953127320c6780fec23d4ffc78/image.png" />
         <pubDate>2025-09-25 23:49:45 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604729796</guid>
      </item>
      <item>
         <title>Expresión booleana</title>
         <author>l21590485</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604731769</link>
         <description><![CDATA[<p>Evalúa a <strong>verdadero (true) o falso (false)</strong>.</p><p><br></p><p>Se construye con <strong>operadores relacionales</strong> (&lt;, &gt;, ==, !=, &gt;=, &lt;=) y <strong>lógicos</strong> (&amp;&amp;, ||, !).</p><p><br></p><p>Ejemplo:</p><p>(edad &gt; 18 &amp;&amp; ingreso &gt; 10000) || esAdmin</p><p><br></p><p>En compilación, las expresiones booleanas a menudo <strong>controlan saltos condicionales</strong>: si la expresión es verdadera, se salta a un bloque de código; si no, se sigue otro camino.</p><p><br></p><p><br></p>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112640222/f77e1112cb4f40aef6792977de56bec6/image.png" />
         <pubDate>2025-09-25 23:51:35 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604731769</guid>
      </item>
      <item>
         <title>Instrucción de asignación</title>
         <author>l21590485</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604736015</link>
         <description><![CDATA[<p>Sirve para <strong>almacenar el valor de una expresión en una variable</strong>.</p><p><br></p><p>Sintaxis general:</p><p><br></p><p>variable = expresión</p><p><br></p><p>La asignación puede involucrar <strong>tipos de datos complejos</strong>, no solo números: arreglos, registros, objetos.</p><p><br></p><p>Ejemplo:</p><pre><code>total = precio * cantidad + impuesto</code></pre>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112640222/cf9d3644c35ae75d2cb3590a2c153790/image.png" />
         <pubDate>2025-09-25 23:55:23 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604736015</guid>
      </item>
      <item>
         <title>Notación Polaca Inversa </title>
         <author>l21590481</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604736732</link>
         <description><![CDATA[<ul><li><p>Los operandos van antes del operador, por ejemplo: <strong>3 4 +</strong> en vez de <strong>3 + 4</strong>.</p></li><li><p>Elimina los paréntesis y la prioridad de operadores se determina por el orden de aparición.</p></li><li><p>Muy utilizada en calculadoras científicas (como las HP) y en lenguajes de programación basados en pila.</p></li><li><p>Ejemplo: La expresión infija <strong>(4 + 8) / (1 + 3)</strong> se convierte en RPN como <strong>4 8 + 1 3 + /</strong>.</p></li><li><p>Facilita la evaluación de expresiones mediante algoritmos de pila, lo que simplifica el diseño de compiladores y parsers.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112636520/278c19a201108d65859ccdc6c42deaa2/image.png" />
         <pubDate>2025-09-25 23:55:55 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604736732</guid>
      </item>
      <item>
         <title>Código P (P-Code)</title>
         <author>l21590481</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604738578</link>
         <description><![CDATA[<ul><li><p>Es un lenguaje intermedio usado en compiladores, especialmente en Pascal.</p></li><li><p>Permite que los programas sean portables y ejecutados en diferentes plataformas mediante una máquina virtual.</p></li><li><p>El P-Code no se ejecuta directamente en el hardware, sino que es interpretado, lo que facilita la depuración y portabilidad.</p></li><li><p>Fue clave para la expansión de Pascal en la educación y la industria.</p></li><li><p>Ejemplo: asignación a = b + c puede representarse como:</p><pre><code>LOD b
LOD c
ADD
STO a</code></pre></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112636520/843f8b47788fef5a57762ea9adb32608/image.png" />
         <pubDate>2025-09-25 23:57:39 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604738578</guid>
      </item>
      <item>
         <title>Traducción de asignaciones</title>
         <author>l21590485</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604740001</link>
         <description><![CDATA[<p>Consiste en <strong>convertir una asignación de alto nivel a instrucciones más simples</strong> que la máquina o el compilador pueden entender.</p><p><br/></p><p>Se usa el <strong>código de tres direcciones</strong>: cada operación intermedia se almacena en una <strong>variable temporal</strong>.</p><p><br/></p><p>Esta forma facilita optimización y análisis de dependencias entre variables.</p><p><br/></p><p>Ejemplo:</p><p><br/></p><pre><code>total = a + b * c</code></pre><p><br/></p><p>Traducción a código de tres direcciones:</p><pre><code>t1 = b * c
t2 = a + t1
total = t2</code></pre>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112640222/3668b2d4fe0d4f8d303d855352e7d6e4/image.png" />
         <pubDate>2025-09-25 23:58:41 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604740001</guid>
      </item>
      <item>
         <title>Instrucciones de control</title>
         <author>l21590485</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604742288</link>
         <description><![CDATA[<p>Modifican el <strong>flujo de ejecución</strong> del programa.</p><p><br/></p><p>Tipos principales:</p><ul><li><p><strong>Condicionales:</strong> if, if-else, switch</p></li><li><p><strong>Bucles:</strong> while, for, do-while</p></li><li><p><strong>Saltos:</strong> goto, break, continue</p></li></ul><p><br/></p><p>Permiten que un programa <strong>no ejecute instrucciones de forma lineal</strong>, sino según condiciones o repeticiones.</p>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112640222/3f86db864b3c77edeea4bdde9ff19254/image.png" />
         <pubDate>2025-09-26 00:00:38 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604742288</guid>
      </item>
      <item>
         <title>Triplos</title>
         <author>l21590481</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604742983</link>
         <description><![CDATA[<ul><li><p>Estructura de tres campos: operador, argumento 1, argumento 2.</p></li><li><p>El resultado se asocia a la posición del triplo en la lista, no a una variable temporal explícita.</p></li><li><p>Ahorra espacio, pero dificulta la optimización porque las referencias dependen de la posición.</p></li><li><p>Ejemplo: a = b + c → (+, b, c)</p></li><li><p>Cuando hay expresiones más largas, los resultados intermedios se usan como variables temporales:</p><pre><code>t1 = b + c → (+, b, c)
a = t1 * d → (*, t1, d)</code></pre><p><br></p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112636520/0be33d12ed48fccfea51f880f73b7706/image.png" />
         <pubDate>2025-09-26 00:01:17 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604742983</guid>
      </item>
      <item>
         <title>Etiquetas (labels)</title>
         <author>l21590485</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604744490</link>
         <description><![CDATA[<p>Son <strong>marcadores dentro del código</strong> que permiten referirse a un punto específico para saltos.</p><p><br/></p><p>Son útiles en <strong>código intermedio o ensamblador</strong>.</p><p><br/></p><p>Ejemplo:</p><pre><code>L1:
  x = x + 1
  goto L2
L2:
  print(x)
</code></pre><p><br/></p><p>En compiladores, las etiquetas se usan para <strong>generar saltos condicionales e incondicionales</strong>.</p>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112640222/d7bcf0ac48989632c10c1ecece24fd25/image.png" />
         <pubDate>2025-09-26 00:02:45 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604744490</guid>
      </item>
      <item>
         <title>Código intermedio</title>
         <author>l21590486</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604745345</link>
         <description><![CDATA[<ul><li><p><strong>Definición:</strong> Es un <strong>código temporal</strong> generado por el compilador que no depende del hardware específico, pero tampoco es el código fuente original.</p></li><li><p><strong>Propósito:</strong> Facilita la <strong>optimización</strong>, análisis y traducción a distintos lenguajes o máquinas.</p></li><li><p><strong>Tipos comunes:</strong></p><ul><li><p><strong>Three-Address Code (TAC):</strong> Cada instrucción tiene máximo tres direcciones (operando1, operando2, resultado).</p><ul><li><p>Ejemplo: t1 = B * C; t2 = A + t1</p></li></ul></li><li><p><strong>Pseudocódigo:</strong> Expresiones simplificadas fáciles de analizar.</p></li></ul></li><li><p><strong>Ventaja:</strong> Separar la traducción del lenguaje fuente de la generación de código máquina.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112634765/635b452efba04a71094e4479ca75a096/descarga.jpg" />
         <pubDate>2025-09-26 00:03:35 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604745345</guid>
      </item>
      <item>
         <title>Fase de compilación</title>
         <author>l21590486</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604745420</link>
         <description><![CDATA[<ul><li><p><strong>Fases detalladas:</strong></p><ol><li><p><strong>Análisis léxico:</strong> Convierte el código en <strong>tokens</strong> (identificadores, operadores, literales).</p></li><li><p><strong>Análisis sintáctico (parsing):</strong> Verifica que los tokens siguen la <strong>gramática</strong> del lenguaje.</p></li><li><p><strong>Análisis semántico:</strong> Comprueba <strong>tipos de datos</strong>, existencia de variables, coherencia lógica.</p></li><li><p><strong>Generación de código intermedio:</strong> Traduce expresiones a un código fácil de manipular.</p></li><li><p><strong>Optimización de código:</strong> Mejora eficiencia, reduce instrucciones redundantes.</p></li><li><p><strong>Generación de código final:</strong> Convierte en <strong>ensamblador o código máquina</strong> específico del hardware.</p></li></ol></li><li><p><strong>Ejemplo práctico:</strong><br>Código fuente: x = a + b * c;</p><ul><li><p>Intermedio (TAC):</p><pre><code>t1 = b * c
x = a + t1</code></pre></li></ul></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112634765/bc4179f36bf36de62f4c482dc4333482/descarga.png" />
         <pubDate>2025-09-26 00:03:39 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604745420</guid>
      </item>
      <item>
         <title>Saltos condicionales e incondicionales</title>
         <author>l21590485</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604745720</link>
         <description><![CDATA[<p><strong>Incondicional (goto)</strong>: el flujo siempre salta a la etiqueta indicada.</p><p><br/></p><p><strong>Condicional (if ... goto)</strong>: salta solo si la condición es verdadera.</p><p><br/></p><p>Ejemplo de salto condicional:</p><pre><code>if x &gt; 0 goto L1
</code></pre><p><br/></p><p>Esto significa: si x es mayor que 0, la ejecución continúa en la etiqueta L1; si no, sigue la instrucción siguiente.</p>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112640222/08971971f4d6077fdc32792cc297e561/image.png" />
         <pubDate>2025-09-26 00:03:55 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604745720</guid>
      </item>
      <item>
         <title>Notación prefija</title>
         <author>l21590486</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604745806</link>
         <description><![CDATA[<ul><li><p><strong>Cómo funciona:</strong> El operador va <strong>antes de los operandos</strong>.</p></li><li><p><strong>Ventaja:</strong> No requiere paréntesis para definir prioridad.</p></li><li><p><strong>Ejemplo:</strong></p><ul><li><p>Infijo: (A + B) * C</p></li><li><p>Prefijo: * + A B C</p></li></ul></li><li><p><strong>Uso:</strong> Computadoras y calculadoras de pila, compiladores.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112634765/f50f277448b2ff3f25bf9648851e5585/complexmove.png" />
         <pubDate>2025-09-26 00:04:01 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604745806</guid>
      </item>
      <item>
         <title>Notación infija</title>
         <author>l21590486</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604746012</link>
         <description><![CDATA[<ul><li><p><strong>Cómo funciona:</strong> Operador <strong>entre</strong> los operandos (lo usamos normalmente).</p></li><li><p><strong>Problema:</strong> Debe usar paréntesis para definir orden de ejecución.</p></li><li><p><strong>Ejemplo:</strong> A + B * C</p><ul><li><p>Multiplicación tiene mayor <strong>precedencia</strong>, entonces se hace B * C primero.</p></li></ul></li><li><p><strong>Uso:</strong> Lenguajes de programación humanos y diarios.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112634765/383b53e0ba1fe24a70e7f77f1f07c84e/images.png" />
         <pubDate>2025-09-26 00:04:12 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604746012</guid>
      </item>
      <item>
         <title>Notación postfija</title>
         <author>l21590486</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604746179</link>
         <description><![CDATA[<ul><li><p><strong>Cómo funciona:</strong> Operador <strong>después</strong> de los operandos.</p></li><li><p><strong>Ventaja:</strong> Fácil de evaluar con <strong>pila</strong> sin necesidad de paréntesis.</p></li><li><p><strong>Ejemplo:</strong></p><ul><li><p>Infijo: (A + B) * C</p></li><li><p>Postfijo: A B + C *</p></li></ul></li><li><p><strong>Evaluación:</strong></p><ul><li><p>Leer de izquierda a derecha:</p><ol><li><p>Apila operandos hasta encontrar operador</p></li><li><p>Aplica operador sobre los últimos operandos</p></li><li><p>Coloca resultado de nuevo en la pila</p></li></ol></li></ul></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112634765/74b9b1ec1eb3239123a90404f925cfb5/Sin_t_tulo12.jpg" />
         <pubDate>2025-09-26 00:04:22 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604746179</guid>
      </item>
      <item>
         <title>Llamada a función</title>
         <author>l21590485</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604747484</link>
         <description><![CDATA[<p>Es cuando un programa <strong>ejecuta un bloque de código predefinido</strong> (función o procedimiento).</p><p><br/></p><p>Permite <strong>modularizar y reutilizar código</strong>.</p><p><br/></p><p>Ejemplo:</p><pre><code>resultado = calcularPromedio(a, b, c)
</code></pre><p><br/></p><p>En compilación se manejan mediante:</p><ul><li><p><strong>Stack</strong> para pasar parámetros y guardar retorno.</p></li><li><p><strong>Instrucciones CALL y RETURN</strong> en código intermedio o ensamblador.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112640222/ab1965a151093999b2eed7614d925c08/image.png" />
         <pubDate>2025-09-26 00:05:35 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604747484</guid>
      </item>
      <item>
         <title>Estructuras de datos complejas</title>
         <author>l21590485</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604749083</link>
         <description><![CDATA[<p>Son <strong>formas de organizar información</strong> más avanzadas que variables simples.</p><p><br/></p><p>Ejemplos:</p><ul><li><p><strong>Arreglos/matrices:</strong> secuencias de elementos del mismo tipo (int nums[10])</p></li><li><p><strong>Registros/structs:</strong> colecciones de campos (struct Persona {nombre, edad})</p></li><li><p><strong>Listas enlazadas, pilas, colas:</strong> estructuras dinámicas para manejar datos de forma flexible</p></li><li><p><strong>Árboles y grafos:</strong> estructuras jerárquicas o de relación para representar datos complejos</p><p><br/></p></li></ul><p>En traducción de programas, estas estructuras <strong>requieren manejo especial en memoria</strong> y a veces <strong>código intermedio adicional</strong>.</p>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112640222/19492582e777180a1695a5080d6f2042/image.png" />
         <pubDate>2025-09-26 00:06:53 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604749083</guid>
      </item>
      <item>
         <title>Triplos Indirectos
</title>
         <author>l21590481</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604749427</link>
         <description><![CDATA[<ul><li><p>Variante donde los operandos son <strong>referencias</strong> a otras posiciones de memoria o variables temporales.</p></li><li><p>Ejemplo: si t1 almacena b + c, entonces el siguiente triplo puede usar t1 en lugar de recalcular.</p></li><li><p>Permite <strong>reutilizar resultados intermedios</strong> y evita duplicación de cálculos.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112636520/8f1b90c0f4c43e8b26ceeac96bbf1308/image.png" />
         <pubDate>2025-09-26 00:07:10 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604749427</guid>
      </item>
      <item>
         <title>Cuádruplos</title>
         <author>l21590481</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604749454</link>
         <description><![CDATA[<ul><li><p>Similar a triplos, pero con un <strong>campo extra</strong> para el resultado: (operador, op1, op2, resultado).</p></li><li><p>Ejemplo: a = b + c → (+, b, c, t1) donde t1 almacena el resultado antes de asignarlo a a.</p></li><li><p>Facilita la lectura y depuración del código intermedio y es más eficiente para optimización.</p></li><li><p>Ejemplo: Para <strong>a = b + c</strong>:</p><ul><li><p><strong>+, b, c, t1</strong></p></li><li><p><strong>=, t1, -, a</strong></p></li></ul></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112636520/b37b1cc053716606ef7ed4858553a7a6/image.png" />
         <pubDate>2025-09-26 00:07:13 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604749454</guid>
      </item>
      <item>
         <title>Ventaja de Cuádruplos
</title>
         <author>l21590481</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604752827</link>
         <description><![CDATA[<ul><li><p>Permiten mover y optimizar instrucciones fácilmente gracias a las variables temporales explícitas.</p></li><li><p>Son la estructura más utilizada en compiladores modernos para optimización.</p></li><li><p>Facilitan la depuración y el análisis del código generado.</p></li><li><p>Permite optimización y genera código más directo para la máquina.</p><p><br/></p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112636520/a34f746d1f9970e6e73daa194028c488/image.png" />
         <pubDate>2025-09-26 00:09:47 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604752827</guid>
      </item>
      <item>
         <title>Variables Temporales
</title>
         <author>l21590481</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604759064</link>
         <description><![CDATA[<ul><li><p>Guardan resultados <strong>intermedios</strong> durante la evaluación de expresiones.</p></li><li><p>Ejemplo: para (b + c) <em> d, t1 = b + c y luego t2 = t1 </em> d.</p></li><li><p>Reducen recalculos y facilitan la traducción de expresiones largas a código máquina.</p></li><li><p>Espacios de memoria generados automáticamente por el compilador para almacenar resultados intermedios.</p></li><li><p>Permiten realizar cálculos complejos paso a paso sin perder información.</p></li><li><p>Son esenciales en estructuras como los cuádruplos y triplos indirectos.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112636520/34bc148c685bd710d0dccdd8325339da/image.png" />
         <pubDate>2025-09-26 00:14:00 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604759064</guid>
      </item>
      <item>
         <title>Esquema de Traducción Dirigida por Sintaxis (SDT)</title>
         <author>l21590481</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604759289</link>
         <description><![CDATA[<ul><li><p>Permite asociar <strong>acciones</strong> a reglas de la gramática.</p></li><li><p>Mientras se analiza la expresión, se generan triplos, cuádruplos y variables temporales automáticamente.</p></li><li><p>Ejemplo: si la regla es E → E1 + T, el SDT puede generar un triplo t = E1 + T.</p></li><li><p>Hace que la traducción de código sea estructurada y modular.</p></li><li><p>Permite generar código intermedio y verificar propiedades semánticas del programa al mismo tiempo.</p></li><li><p>Es clave en la construcción de compiladores modernos.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112636520/99f30b986844f5af44dc91b3ddbc3757/image.png" />
         <pubDate>2025-09-26 00:14:09 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604759289</guid>
      </item>
      <item>
         <title>Atributos Sintetizados
</title>
         <author>l21590481</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604761215</link>
         <description><![CDATA[<ul><li><p>Calculados desde los <strong>hijos hacia la raíz</strong> en un árbol de sintaxis.</p></li><li><p>Permiten que los resultados intermedios suban en el árbol y se combinen.</p></li><li><p>Ejemplo: en (b + c) <em> d, el nodo + calcula t1 = b + c, que luego usa el nodo </em> para t2 = t1 * d.</p></li><li><p>Esencial para evaluar expresiones y generar código intermedio de manera ordenada y eficiente.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112636520/9f79a23243ecd55e0a5853b9109786b6/image.png" />
         <pubDate>2025-09-26 00:15:21 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604761215</guid>
      </item>
      <item>
         <title>Precedencia de operadores</title>
         <author>l21590486</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604766725</link>
         <description><![CDATA[<ul><li><p>Determina qué operación se realiza <strong>primero</strong>.</p></li><li><p><strong>Ejemplo en C/C++:</strong></p><ol><li><p>() → paréntesis</p></li><li><p>* / % → multiplicación, división, módulo</p></li><li><p>+ - → suma y resta</p></li><li><p>= → asignación</p></li></ol></li><li><p><strong>Importancia:</strong> Evita resultados incorrectos si no usamos paréntesis.</p><ul><li><p>A + B <em> C ≠ (A + B) </em> C</p></li></ul></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112634765/5bdba8d9843b02f211292ebac5d4acaa/maxresdefault.jpg" />
         <pubDate>2025-09-26 00:18:45 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604766725</guid>
      </item>
      <item>
         <title>Árbol sintáctico (AST)</title>
         <author>l21590486</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604786728</link>
         <description><![CDATA[<ul><li><p>Representación <strong>jerárquica</strong> de una expresión o programa.</p></li><li><p>Nodos internos: operadores</p></li><li><p>Hojas: operandos o literales</p></li><li><p>Facilita análisis, optimización y generación de código.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112634765/bd2b702699887c8a25e938de410096d3/descarga__1_.png" />
         <pubDate>2025-09-26 00:29:35 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604786728</guid>
      </item>
      <item>
         <title>Recorrido del árbol</title>
         <author>l21590486</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604789655</link>
         <description><![CDATA[<ul><li><p><strong>Preorden:</strong> visitar nodo → hijo izquierdo → hijo derecho</p></li><li><p><strong>Inorden:</strong> hijo izquierdo → nodo → hijo derecho</p></li><li><p><strong>Postorden:</strong> hijo izquierdo → hijo derecho → nodo</p></li><li><p>Ejemplo con AST de A + B * C:</p></li></ul><pre><code>        +
       / \
      A   *
         / \
        B   C
</code></pre><ul><li><p>Preorden: + A * B C</p></li><li><p>Inorden: A + B * C</p></li><li><p>Postorden: A B C * +</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112634765/0bd2e8f2b78e56d2859f4c749394c452/descarga__1_.jpg" />
         <pubDate>2025-09-26 00:31:05 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604789655</guid>
      </item>
      <item>
         <title>Conversión de notaciones</title>
         <author>l21590486</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604794247</link>
         <description><![CDATA[<ul><li><p><strong>Infijo → Postfijo:</strong> Usar <strong>pila para operadores</strong> y respetar precedencia.</p></li><li><p><strong>Infijo → Prefijo:</strong> Similar, pero se procesa de <strong>derecha a izquierda</strong>.</p></li><li><p><strong>Postfijo → Infijo:</strong> Se puede reconstruir con una pila de expresiones.</p></li><li><p><strong>Ejemplo práctico:</strong></p><ul><li><p>Infijo: A + B * C</p></li><li><p>Postfijo: A B C * +</p></li><li><p>Prefijo: + A * B C</p></li></ul></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112634765/fb2c693e3ae8a86494b87b6856af3251/Conversiones_de_infi.png" />
         <pubDate>2025-09-26 00:33:23 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604794247</guid>
      </item>
      <item>
         <title>Asociatividad</title>
         <author>l21590486</author>
         <link>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604799235</link>
         <description><![CDATA[<ul><li><p>Determina <strong>el orden de operaciones</strong> cuando hay operadores con la misma precedencia.</p></li><li><p>Puede ser <strong>izquierda → derecha</strong> o <strong>derecha → izquierda</strong>.</p></li><li><p>Ejemplo:</p><ul><li><p>a - b - c → izquierda → derecha → (a - b) - c</p></li><li><p>a ^ b ^ c → derecha → izquierda → a ^ (b ^ c)</p></li></ul></li></ul>]]></description>
         <enclosure url="https://padlet-uploads-usc1.storage.googleapis.com/2112634765/553a3413ab00f6c96e274a66f969aacb/Tutorial_PHP_15___Pr.png" />
         <pubDate>2025-09-26 00:36:10 UTC</pubDate>
         <guid>https://padlet.com/l21590486/xnzfusfbybhpkyvh/wish/3604799235</guid>
      </item>
   </channel>
</rss>
