Se denomina tiempo de compilación (compile-time en inglés) al intervalo de tiempo en el que un compilador compila código escrito en un lenguaje de programación a una forma de código ejecutable por una máquina.
El compilador normalmente realiza un chequeo de sintaxis, que incluye entre otros un chequeo de tipos y ejecución de reglas de ámbito, seguido de un análisis semántico, que se compone de procesos como el enlazado estático, la instanciación de plantillas y la optimización del código generado. El enlazado dinámico se realiza normalmente después del tiempo de compilación, bien en tiempo de ejecución o antes de este, por medio de un cargador de programas. El chequeo de límites de arrays normalmente no se hace en tiempo de compilación.
Este término suele emplearse, en oposición a tiempo de ejecución, para indicar si una acción o hecho sucede en uno u otro tiempo.
El tiempo de compilación no sucede en los lenguajes interpretados debido a que estos no necesitan compilarse. En dichos lenguajes, ciertas acciones típicas de la compilación como es la comprobación de la sintaxis se realizan antes de comenzar a ejecutar el código, pero no es propiamente una compilación.