6. Generación de código máquina: Instrucciones para la CPU.

 La última etapa traduce el código intermedio al código máquina, que consiste en instrucciones específicas para el procesador.


Ejemplo 11, el cálculo de x + y podría traducirse a:

                                        MOV AX, 10 ; Cargar 10 en el registro AX
                                        MOV BX, 20 ; Cargar 20 en el registro BX
                                        ADD AX, BX ; Sumar AX y BX
                                        MOV suma, AX ; Guardar el resultado en la variable suma

Ejemplo 11. Traducción de código.
Fuente: Eduardo, O. Q. E. (2024). Ejemplo 11 [Fragmento de código].

Este código es lo que finalmente se ejecuta en la computadora.


Ejemplo Completo: Compilando un Programa

Supongamos que escribes el siguiente programa en el mini lenguaje reutilizaremos el Ejemplo 1:

                                                        entero principal () {
                                                        entero x = 5;
                                                        entero y = 10;
                                                        entero suma = x + y;
                                                        regresa suma;
                                                        }

 Ejemplo 1. Función que suma dos variables enteras.
Fuente: Eduardo, O. Q. E. (2024). Ejemplo 1 [Fragmento de código].

El compilador realizaría los siguientes pasos:

  •     Análisis Léxico: Genera los tokens enteros, principal, {, etc.
  •     Análisis Sintáctico: Construye un árbol sintáctico para verificar la estructura.
  •     Análisis Semántico: Comprueba que x, y estén declarados antes de usarlos.
  •     Generación de Código Intermedio:

                                                                    LOAD R1, 5
                                                                    LOAD R2, 10
                                                                    ADD R3, R1, R2
                                                                    STORE suma, R3
Ejemplo 8. Código intermedio.
Fuente: Eduardo, O. Q. E. (2024). Ejemplo 8 [Fragmento de código].

  • Optimización: Simplifica el cálculo si es posible.
  • Generación de Código Máquina: Produce instrucciones específicas para la CPU.


El proceso de un compilador es fascinante y esencial para que los programas que escribimos puedan ser ejecutados por una computadora. Desde identificar tokens hasta generar código máquina, cada etapa cumple un propósito específico.

Este mini lenguaje basado en C en español es una forma excelente de aprender los conceptos básicos de los compiladores mientras trabajas con un lenguaje más cercano a nuestro idioma. ¿Te animas a construir tu propio compilador? ¡Empieza con herramientas como Flex y Bison!


Estos videos te pueden ser de utilidad para poder terminar de comprender sobre las fases de un compilador

Ana Gabriela. (2017, June 25). ¿Qué es un compilador y cómo funciona? [Video]. YouTube. https://www.youtube.com/watch?v=5I_0N7S41HQ


BettaTech. (2022, August 4). La MAGIA de los COMPILADORES [Video]. YouTube. https://www.youtube.com/watch?v=bz_z3NMKC24


Referencia en APA: Alfred, A. V., & Ullman, J. D. (1998). Generación de código final. En Principles of compiler design (Capítulo 7). Compiladores. (n.d.). Google Books. https://books.google.com.gt/books?id=yG6qJBAnE9UC&printsec=frontcover#v=onepage&q&f=false

Comentarios