<Anterior | Contenido | Siguiente>
¿Qué es la compilación?
En pocas palabras, compilar es el proceso de traducir código fuente (la descripción legible por humanos de un programa escrito por un programador) en el idioma nativo del procesador de la computadora.
El procesador de la computadora (o CPU) trabaja a un nivel muy elemental, ejecutando programas en lo que se llama Lenguaje de máquina. Este es un código numérico que describe operaciones muy pequeñas, como "agregar este byte", "apuntar a esta ubicación en la memoria" o "copiar este byte".
Cada una de estas instrucciones se expresa en binario (unos y ceros). Los primeros programas de computadora se escribieron utilizando este código numérico, lo que puede explicar por qué se decía que los programadores que lo escribieron fumaban mucho, bebían galones de café y usaban gafas gruesas.
Este problema fue superado por el advenimiento de lenguaje ensamblador, que reemplazó los códigos numéricos con caracteres (un poco) más fáciles de usar mnemotécnica como CPY (para copiar) y MOV (para mover). Los programas escritos en lenguaje ensamblador son procesados en lenguaje de máquina por un programa llamado ensamblador. El lenguaje ensamblador todavía se usa hoy en día para ciertas tareas de programación especializadas, como controladores de dispositivo y sistemas embebidos.
A continuación llegamos a lo que se llama lenguajes de programación de alto nivel. Se llaman así porque permiten que el programador se preocupe menos por los detalles de lo que está haciendo el procesador y más por resolver el problema en cuestión. Los primeros (desarrollados durante la década de 1950) incluían FORTRAN (diseñado para tareas científicas y técnicas) y COBOL (diseñado para aplicaciones comerciales). Ambos todavía tienen un uso limitado en la actualidad.
Si bien hay muchos lenguajes de programación populares, predominan dos. La mayoría de los programas escritos para sistemas modernos están escritos en C or C + +. En los ejemplos siguientes, compilaremos un programa en C.
Los programas escritos en lenguajes de programación de alto nivel se convierten en lenguaje de máquina procesándolos con otro programa, llamado compilador. Algunos compiladores traducen instrucciones de alto nivel al lenguaje ensamblador y luego usan un ensamblador para realizar la etapa final de traducción al lenguaje de máquina.
Un proceso que se usa a menudo junto con la compilación se llama enlace. Hay muchas tareas comunes realizadas por programas. Tomemos, por ejemplo, la apertura de un archivo. Muchos programas realizan esta tarea, pero sería un desperdicio que cada programa implemente su propia rutina para abrir archivos. Tiene más sentido tener una sola pieza de programación que sepa cómo abrir archivos y permitir que todos los programas que lo necesiten lo compartan. Brindar apoyo para tareas comunes se logra mediante lo que se llama bibliotecas. Contienen múltiples rutinas, cada uno realizando una tarea común que pueden compartir varios programas. Si miramos en el / lib y / Usr / lib directorios, podemos ver dónde viven muchos de ellos. Un programa llamado izquierda se utiliza para formar las conexiones entre la salida del compilador y las bibliotecas que requiere el programa compilado. El resultado final de este proceso es el archivo de programa ejecutable, Listo para usar.