MyLeoNes™

Cómo los compiladores convierten código en programas — Informática, 14–17 años

Un programa escrito por una persona aún no está en el formato que puede ejecutar un procesador. Los compiladores e intérpretes salvan esa distancia: comprueban el código y lo traducen en acciones.

El código fuente necesita un traductor

Escribes código fuente para que lo lean las personas, con palabras como print o if. Un procesador entiende instrucciones mucho más sencillas, así que un compilador traduce todo el programa antes de ejecutarlo, mientras un intérprete traduce y ejecuta una parte cada vez. La intención del programa no cambia.

¿Por qué necesitamos traducir?

El problema es que las personas necesitan nombres y estructuras legibles, pero los procesadores necesitan patrones exactos de instrucciones. Los primeros programadores podían introducir instrucciones de máquina directamente, pero era lento, frágil y difícil de revisar. Los lenguajes y traductores aparecieron para describir tareas sin reescribir cada detalle del procesador.

De una línea a una acción

Tomemos la línea print(2 + 3). Primero, el traductor reconoce print como una instrucción para mostrar algo. Después comprueba que 2 + 3 es válido y calcula el valor 5, o crea instrucciones para que el procesador lo calcule. Por último, el programa envía 5 a la pantalla.

Un compilador no lo arregla todo

Es común pensar que, si el código compila, tiene que ser correcto. Es razonable, porque el traductor ha comprobado la gramática y algunos tipos. Pero print(2 - 3) puede compilar perfectamente y dar un resultado inesperado; un programa puede funcionar y resolver el problema equivocado. Traducir comprueba la forma, no todas las intenciones.

Dónde importan los traductores

Cada vez que instalas una aplicación compilada o ejecutas código en un navegador, algún traductor ha ayudado a prepararlo. Un compilador puede optimizar un juego para que responda rápido, mientras un intérprete facilita probar un pequeño programa en varios sistemas. La elección afecta a la velocidad, la portabilidad y el momento en que aparece un error.

Sigue explorando

Otros idiomas

Cargando MyLeoNes™…