Ordenadores leer comandos de un lenguaje de máquina por escrito en binario , es decir , largas cadenas de ceros y unos. Mientras que las computadoras pueden leer este idioma de manera eficiente , los programadores más humanos no pueden. Es por eso que los programadores trabajan en un lenguaje de programación que pueden entender , que luego se traducen en el lenguaje de máquina que la computadora puede entender. Aunque muchos idiomas nuevos usan intérpretes que traducir de una a la otra como se ejecuta el programa , los lenguajes de programación más antiguos utilizan compiladores que hicieron esto traducción por completo antes de que el equipo ejecuta el programa. Ventaja: autónomo y eficiente
Una de las principales ventajas de los programas que se compilan es que son unidades independientes que están listos para ser ejecutados. Debido a que ya se compilan en lenguaje máquina binarios , no hay una segunda aplicación o paquete que el usuario tiene que estar al día . Si un programa es compilado para Windows en una arquitectura x86 , el usuario final sólo necesita un sistema operativo de Windows que se ejecuta en una arquitectura x86. Además, un paquete precompilado puede correr más rápido que una compilación de código fuente intérprete en tiempo real
Desventaja: . Hardware específico
Debido a que un código fuente del compilador traduce en una máquina específica idioma, los programas tienen que ser compilados específicamente para OS X , Windows y Linux , así como específicamente para arquitecturas de 32 bits o de 64 bits . Para una empresa de programador o software tratando de conseguir un producto a la audiencia más amplia posible , esto significa mantener múltiples versiones del código fuente de la misma aplicación. Esto se traduce en más tiempo dedicado a mantenimiento del código fuente y la molestia adicional cuando haya actualizaciones disponibles
Ventaja: . Optimization Hardware
Mientras que estar encerrados en un hardware específico paquete tiene sus desventajas , la compilación de un programa también puede aumentar su rendimiento. Los usuarios pueden enviar opciones específicas a los compiladores sobre los detalles del hardware el programa se ejecuta. Esto permite que el compilador para crear código de lenguaje de máquina que hace el uso más eficiente del hardware especificado , a diferencia de código más genérico . Esto también permite a los usuarios avanzados para optimizar el rendimiento del programa en sus ordenadores
Desventaja: . Compilar tiempos
Uno de los inconvenientes de tener un compilador es que en realidad debe recopilar código fuente . Mientras que los pequeños programas que muchos novatos código programadores tomar cantidades triviales de tiempo para compilar , grandes suites de aplicaciones pueden tener una cantidad significativa de tiempo para compilar . Cuando los programadores no tienen nada que hacer más que esperar a que el compilador para terminar , en esta ocasión se suman --- especialmente durante la etapa de desarrollo , cuando el código tiene que ser compilado con el fin de probar la funcionalidad y solucionar problemas técnicos .