Este artículo incluye una lista de referencias generales , pero permanece en gran parte sin verificar porque carece de suficientes citas en línea correspondientes . ( Enero de 2013 ) |
Un lenguaje compilado es un lenguaje de programación cuyas implementaciones son típicamente compiladores (traductores que generan código de máquina a partir del código fuente ) y no intérpretes (ejecutores paso a paso del código fuente , donde no tiene lugar una traducción previa al tiempo de ejecución).
El término es algo vago. En principio, cualquier lenguaje se puede implementar con un compilador o con un intérprete. [1] Una combinación de ambas soluciones también es común: un compilador puede traducir el código fuente a alguna forma intermedia (a menudo llamada código p o código byte ), que luego se pasa a un intérprete que lo ejecuta.
Los programas compilados en código nativo en tiempo de compilación tienden a ser más rápidos que los traducidos en tiempo de ejecución debido a la sobrecarga del proceso de traducción. Sin embargo, las tecnologías más nuevas, como la compilación justo a tiempo y las mejoras generales en el proceso de traducción, están comenzando a reducir esta brecha. Las soluciones mixtas que utilizan bytecode tienden a una eficiencia intermedia.
Los lenguajes de programación de bajo nivel generalmente se compilan, especialmente cuando la eficiencia es la principal preocupación, en lugar del soporte multiplataforma . Para tales lenguajes, hay más correspondencias uno a uno entre el código programado y las operaciones de hardware realizadas por el código de máquina , lo que facilita a los programadores controlar el uso de la unidad central de procesamiento (CPU) y la memoria con gran detalle.
Con algo de esfuerzo, siempre es posible escribir compiladores incluso para lenguajes interpretados tradicionalmente . Por ejemplo, Common Lisp se puede compilar en código de bytes Java (luego interpretado por la máquina virtual Java ), código C (luego compilado en código de máquina nativo) o directamente en código nativo. Los lenguajes de programación que admiten múltiples objetivos de compilación brindan a los desarrolladores más control para elegir la velocidad de ejecución o la compatibilidad multiplataforma.
Algunos lenguajes que comúnmente se consideran compilados:
.