В информатике, время компиляции относится либо к операциям, выполняемым компилятором («операции времени компиляции»), язык программирования требования, которым должен соответствовать исходный код для его успешного выполнения iled («требования времени компиляции») или свойства программы, о которых можно подумать во время компиляции. Время компиляции относится к продолжительности времени, в течение которого программный код преобразуется в машинный код (т. Е. Двоичный код) и обычно происходит до среды выполнения.
Операции, выполняемые во время компиляции, обычно включают синтаксический анализ, различные виды семантического анализа (например, проверка типа и создание экземпляра шаблона ) и генерация кода.
Определения языков программирования обычно указывают требования к времени компиляции, которым должен соответствовать исходный код для успешной компиляции. Например, в языках может быть оговорено, что объем памяти, необходимый для типов и переменных, может быть вычислен.
Свойства программы, которые могут быть рассмотрены во время компиляции, включают проверки диапазона (например, доказательство того, что индекс массива не выходит за границы массива), свободу тупиковых ситуаций в параллельных языках, или тайминги (например, доказательство того, что последовательность кода занимает не более выделенного количества времени).
Время компиляции происходит до времени компоновки (когда вывод одного или нескольких скомпилированных файлов объединяется) и времени выполнения (когда программа выполнено ). В некоторых языках программирования может потребоваться некоторая компиляция и компоновка во время выполнения. Существует компромисс между временем компиляции и временем компоновки, поскольку многие операции времени компиляции можно отложить до времени компоновки без дополнительных затрат времени выполнения.
«Время компиляции» также может относиться к количеству времени, необходимому для компиляции.