Описание тега compile-time

Относится к информации, которая может быть выведена или известна во время компиляции исходного кода, в отличие от информации, которая может быть выведена только при запуске исходного кода. Не используйте этот тег для вопросов о времени, которое требуется для компиляции исходного кода.

В информатике время компиляции относится либо к операциям, выполняемым компилятором ("операции времени компиляции"), либо к требованиям языка программирования, которым должен соответствовать исходный код для его успешной компиляции ("требования времени компиляции" ") или свойства программы, о которых можно подумать во время компиляции.

Операции, выполняемые во время компиляции, обычно включают синтаксический анализ, различные виды семантического анализа (например, проверки типов и создание экземпляра шаблона) и генерацию кода.

Определения языков программирования обычно указывают требования ко времени компиляции, которым должен соответствовать исходный код для успешной компиляции. Например, можно вывести объем памяти, необходимый для типов и переменных.

Свойства программы, о которых можно рассуждать во время компиляции, включают проверки диапазона (например, доказательство того, что индекс массива не превышает границы массива), свободу тупиковых ситуаций в параллельных языках или тайминги (например, доказательство того, что последовательность кода принимает не более выделенного количества времени).

Время компиляции происходит до времени компоновки (когда вывод одного или нескольких скомпилированных файлов объединяется) и времени выполнения (когда программа выполняется).

В некоторых языках программирования может потребоваться некоторая компиляция и компоновка во время выполнения.

Существует компромисс между временем компиляции и временем компоновки, поскольку многие операции времени компиляции можно отложить до времени компоновки без дополнительных затрат времени выполнения.

"Время компиляции" также может означать количество времени, необходимое для компиляции.

Источник: Википедия