Время компиляции
Эта статья нуждается в дополнительных цитатах для проверки . ( январь 2023 г. ) |
Выполнение программы |
---|
Общие понятия |
Типы кода |
Стратегии составления |
Известное время выполнения |
|
Известные компиляторы и наборы инструментов |
|
В информатике ( время компиляции или время компиляции ) описывает временной интервал, в течение которого операторы языка преобразуются в двоичные инструкции для выполнения процессором. [ 1 ] Этот термин используется как прилагательное для описания понятий, связанных с контекстом компиляции программы, в отличие от понятий, связанных с контекстом выполнения программы ( время выполнения ). Например, требования времени компиляции — это требования языка программирования , которым должен соответствовать исходный код перед компиляцией, а свойства времени компиляции — это свойства программы, которые можно учитывать во время компиляции. Фактическое время, необходимое для компиляции программы, обычно называется временем компиляции .
Время компиляции/раннее связывание и время выполнения
[ редактировать ]Определение модели выполнения было установлено на этапе компиляции. Время выполнения — метод выполнения и распределения — устанавливается во время выполнения и основано на динамике времени выполнения.
Обзор
[ редактировать ]Большинство компиляторов имеют как минимум следующие этапы компиляции (которые, следовательно, происходят во время компиляции): синтаксический анализ , семантический анализ и генерация кода . На этапах оптимизации константные выражения в исходном коде также могут быть оценены во время компиляции с помощью выполнения во время компиляции , что сводит константные выражения к одному значению. Это не обязательно для корректности, но улучшает производительность программы во время выполнения.
Определения языков программирования обычно определяют требования ко времени компиляции, которым должен соответствовать исходный код для успешной компиляции. Например, языки могут предусматривать возможность определения объема памяти, требуемого типами и переменными.
Свойства программы, о которых можно рассуждать во время компиляции, включают проверку диапазона (например, доказательство того, что индекс массива не выходит за границы массива), отсутствие взаимоблокировок в параллельных языках или тайминги (например, доказательство того, что последовательность кода занимает не более отведенного времени).
Время компиляции происходит до времени компоновки (когда объединяются выходные данные одного или нескольких скомпилированных файлов) и времени выполнения когда программа выполняется ( ). Хотя в случае динамической компиляции окончательные преобразования в машинный язык происходят во время выполнения.
Существует компромисс между временем компиляции и временем компоновки, поскольку многие операции времени компиляции могут быть отложены на время компоновки без каких-либо затрат во время выполнения.
См. также
[ редактировать ]- Время ссылки
- Время выполнения (фаза жизненного цикла программы)
- Компиляция
- Типовая система
- Динамическая компиляция
- Сборка точно в срок
Ссылки
[ редактировать ]- ^ «История языков программирования» . Проверено 25 декабря 2022 г.