Saltearse al contenido

Compiladores

Un Compilador es un programa informático que traduce un texto escrito en un lenguaje de programación (llamado código fuente) a otro lenguaje de bajo nivel (normalmente código máquina o binario) para que la computadora pueda ejecutarlo directamente.


El compilador no traduce todo de un solo golpe, sino que sigue una serie de pasos lógicos:

  1. Análisis Léxico: Lee el código carácter por carácter y lo agrupa en “tokens” (palabras clave, símbolos, números). Es como identificar las palabras en una oración.
  2. Análisis Sintáctico: Revisa que los tokens sigan las reglas del lenguaje (ej: que no falten paréntesis o puntos y coma). Es la “gramática” del código.
  3. Análisis Semántico: Verifica que lo que escribiste tenga sentido lógico (ej: que no intentes sumar un texto con un número).
  4. Generación de Código Intermedio: Crea una versión simplificada del código antes de la traducción final.
  5. Optimización: Mejora el código para que el programa final sea más rápido y use menos memoria.
  6. Generación de Código Final: Traduce todo a ceros y unos (00 y 11) que el procesador entiende.

  • Traducción: Convertir el lenguaje humano (alto nivel) a lenguaje de máquina (bajo nivel).
  • Detección de Errores: Avisar al programador si hay fallos antes de que el programa se intente ejecutar.
  • Creación de Ejecutables: Genera archivos finales (como los .exe en Windows) que pueden funcionar sin necesidad de tener el código fuente presente.
  • Optimización de Recursos: Organiza las instrucciones para que el hardware trabaje de la forma más eficiente posible.

Es importante no confundirlos, ya que trabajan de formas distintas:

CaracterísticaCompilador (C, C++, Rust)Intérprete (Python, JavaScript)
FuncionamientoTraduce todo el programa antes de ejecutarlo.Traduce y ejecuta línea por línea en tiempo real.
VelocidadEl programa final es muy rápido.El proceso es más lento.
Archivo FinalGenera un archivo independiente (.exe).Necesita el programa “intérprete” para correr.
ErroresDetecta errores antes de empezar.Los errores aparecen mientras el programa corre.

Produce código para una plataforma específica (ej: un compilador de C++ genera un archivo que solo corre en Windows si se compiló para Windows).

Es un sistema híbrido que usan lenguajes como Java o C#. El código se traduce a un lenguaje intermedio y, justo cuando vas a abrir el programa, una “máquina virtual” lo termina de compilar para tu sistema. Esto permite que el mismo archivo funcione en diferentes sistemas operativos.

Son compiladores especiales que traducen de un lenguaje de alto nivel a otro lenguaje de alto nivel (ej: traducir de TypeScript a JavaScript).


  • GCC (GNU Compiler Collection): El estándar en el mundo Linux para C y C++.
  • Clang: Un compilador moderno y rápido usado frecuentemente en macOS y para el desarrollo de navegadores.
  • rustc: El compilador de Rust, famoso por ser muy estricto para garantizar que no haya errores de memoria.
  • MSVC: El compilador oficial de Microsoft incluido en Visual Studio.

Dato Clave: Si el compilador te da un error, no es tu enemigo; es un filtro de seguridad que evita que el programa falle cuando ya esté en manos del usuario.