stringtranslate.com

Tiempo de compilación

En informática , el tiempo de compilación (o tiempo de compilación ) describe la ventana de tiempo durante la cual las declaraciones de un lenguaje se convierten en instrucciones binarias para que las ejecute el procesador. [1] El término se utiliza como adjetivo para describir conceptos relacionados con el contexto de compilación del programa, a diferencia de conceptos relacionados con el contexto de ejecución del programa ( tiempo de ejecución ). Por ejemplo, los requisitos en tiempo de compilación son requisitos del lenguaje de programación que el código fuente debe cumplir antes de la compilación y las propiedades en tiempo de compilación son propiedades del programa sobre las que se puede razonar durante la compilación. El tiempo real que lleva compilar un programa generalmente se denomina tiempo de compilación .

Tiempo de compilación/enlace anticipado frente a tiempo de ejecución

La determinación del modelo de ejecución se estableció durante la etapa de tiempo de compilación. El tiempo de ejecución (el método de ejecución y asignación) se ha establecido durante el tiempo de ejecución y se basa en la dinámica del tiempo de ejecución.

Descripción general

La mayoría de los compiladores tienen al menos las siguientes fases de compilación (que, por lo tanto, ocurren en tiempo de compilación): análisis de sintaxis , análisis semántico y generación de código . Durante las fases de optimización, las expresiones constantes en el código fuente también se pueden evaluar en tiempo de compilación mediante la ejecución en tiempo de compilación , lo que reduce las expresiones constantes a un solo valor. Esto no es necesario para la corrección, pero mejora el rendimiento del programa durante el tiempo de ejecución.

Las definiciones del lenguaje de programación generalmente especifican los requisitos de tiempo de compilación que el código fuente debe cumplir para compilarse exitosamente. Por ejemplo, los idiomas pueden estipular que se puede deducir la cantidad de almacenamiento requerido por tipos y variables.

Las propiedades de un programa sobre las que se puede razonar en tiempo de compilación incluyen comprobaciones de rango (por ejemplo, demostrar que un índice de matriz no excederá los límites de la matriz), libertad de interbloqueo en lenguajes concurrentes o tiempos (por ejemplo, demostrar que una secuencia de código toma no más que una cantidad de tiempo asignada).

El tiempo de compilación ocurre antes del tiempo de enlace (cuando se unen la salida de uno o más archivos compilados) y el tiempo de ejecución (cuando se ejecuta un programa ). Aunque en el caso de la compilación dinámica , las transformaciones finales a lenguaje de máquina ocurren en tiempo de ejecución.

Existe una compensación entre el tiempo de compilación y el tiempo de enlace en el sentido de que muchas operaciones en tiempo de compilación se pueden aplazar al tiempo de enlace sin incurrir en costos de tiempo de ejecución.

Ver también

Referencias

  1. ^ "Una historia de los lenguajes de programación informática" . Consultado el 25 de diciembre de 2022 .