Un lenguaje compilado es un lenguaje de programación para el cual normalmente se compila el código fuente ; no interpretado .
El término es vago ya que, en principio, cualquier lenguaje puede compilarse o interpretarse y en la práctica algunos lenguajes son ambas cosas (en diferentes entornos). [1] En algunos entornos, el código fuente primero se compila (en una forma intermedia; a menudo código de bytes ) y luego se interpreta.
Los programas compilados en código nativo tienden a ejecutarse más rápido que si se interpretan debido a la sobrecarga de traducción. Los entornos con una forma intermedia de bytcode tienden a una velocidad intermedia. La compilación justo a tiempo permite una velocidad de ejecución nativa con un costo único de tiempo de procesamiento de inicio.
Los lenguajes de programación de bajo nivel , como ensamblador y C , generalmente se compilan, especialmente cuando la principal preocupación es la eficiencia, en lugar del soporte multiplataforma . Para dichos lenguajes, existen más correspondencias uno a uno entre el código fuente y el código de máquina resultante , lo que facilita a los programadores controlar el uso del hardware.
Es posible escribir compiladores incluso para lenguajes comúnmente interpretados . Por ejemplo, Common Lisp se puede compilar en código de bytes de 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 entornos que admiten múltiples lenguajes de salida de compilación brindan a los desarrolladores el control para elegir la velocidad de ejecución o la compatibilidad entre plataformas.