![...](/f/e029f53273a6c39a6661c82f1f0287dc.jpg)
Los programadores utilizan compiladores para convertir el código fuente en código de máquina.
Las computadoras leen comandos de un lenguaje de máquina escritos en binario, es decir, largas cadenas de ceros y unos. Si bien las computadoras pueden leer este lenguaje de manera eficiente, la mayoría de los programadores humanos no pueden. Es por eso que los programadores trabajan en un lenguaje de programación que pueden entender, que luego traducen al lenguaje de máquina que la computadora puede entender. Si bien muchos idiomas más nuevos utilizan intérpretes que traducen de uno a otro a medida que se ejecuta el programa, los más antiguos Los lenguajes de programación usaban compiladores que hacían esta traducción por completo antes de que la computadora ejecutara la programa.
Ventaja: autónomo y eficiente
Una de las principales ventajas de los programas compilados es que son unidades independientes que están listas para ejecutarse. Debido a que ya están compilados en binarios de lenguaje de máquina, no existe una segunda aplicación o paquete que el usuario deba mantener actualizado. Si un programa se compila para Windows en una arquitectura x86, el usuario final solo necesita un sistema operativo Windows que se ejecute en una arquitectura x86. Además, un paquete precompilado puede ejecutarse más rápido que un intérprete que compila el código fuente en tiempo real.
Video del día
Desventaja: específico del hardware
Debido a que un compilador traduce el código fuente a un lenguaje de máquina específico, los programas deben ser compilado específicamente para OS X, Windows o Linux, así como específicamente para 32 bits o 64 bits arquitecturas. Para un programador o una empresa de software que intenta hacer llegar un producto a la audiencia más amplia posible, esto significa mantener varias versiones del código fuente para la misma aplicación. Esto da como resultado más tiempo dedicado al mantenimiento del código fuente y problemas adicionales cuando se publican las actualizaciones.
Ventaja: optimización de hardware
Si bien estar bloqueado en un paquete de hardware específico tiene sus desventajas, compilar un programa también puede aumentar su rendimiento. Los usuarios pueden enviar opciones específicas a los compiladores con respecto a los detalles del hardware en el que se ejecutará el programa. Esto permite que el compilador cree código en lenguaje de máquina que hace el uso más eficiente del hardware especificado, a diferencia del código más genérico. Esto también permite a los usuarios avanzados optimizar el rendimiento de un programa en sus computadoras.
Desventaja: tiempos de compilación
Uno de los inconvenientes de tener un compilador es que en realidad debe compilar el código fuente. Si bien los pequeños programas que muchos programadores novatos codifican toman una cantidad de tiempo trivial para compilar, los conjuntos de aplicaciones más grandes pueden requerir una cantidad significativa de tiempo para compilar. Cuando los programadores no tienen nada que hacer más que esperar a que finalice el compilador, este tiempo puede acumularse, especialmente durante la etapa de desarrollo, cuando el código debe compilarse para probar la funcionalidad y solucionar problemas fallas.