Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Время, в течение которого исходный код проверяется и преобразуется в машинный код компилятором.
The time during which source code is validated and converted to machine code by a compiler
В информатике время компиляции (или время компиляции) описывает период времени, в течение которого операторы языка преобразуются в бинарные инструкции для выполнения процессором. Этот термин используется как прилагательное для описания понятий, относящихся к контексту компиляции программы, в отличие от понятий, относящихся к контексту выполнения программы (времени выполнения). Например, требования времени компиляции – это требования к языку программирования, которым должен соответствовать исходный код перед компиляцией, а свойства времени компиляции – это свойства программы, которые можно анализировать в процессе компиляции. Фактическая продолжительность компиляции программы обычно называется временем компиляции.
In computer science, compile time (or compile time) describes the time window during which a language's statements are converted into binary instructions for the processor to execute. The term is used as an adjective to describe concepts related to the context of program compilation, as opposed to concepts related to the context of program execution (runtime). For example, compile time requirements are programming language requirements that must be met by source code before compilation and compile time properties are properties of the program that can be reasoned about during compilation. The actual length of time it takes to compile a program is usually referred to as compilation time.
Время компиляции/раннее связывание против времени выполнения
Определение модели исполнения происходит на этапе компиляции. Способ выполнения и выделения ресурсов определяются во время выполнения и зависят от динамики, возникающей во время выполнения.
The determination of execution model have been set during the compile time stage. Run time the method of execution and allocation have been set during the run time and are based on the run time dynamicity.
Обзор
Большинство компиляторов имеют как минимум следующие фазы компиляции (которые, следовательно, происходят во время компиляции): синтаксический анализ, семантический анализ и генерация кода. Во время фаз оптимизации постоянные выражения в исходном коде также могут быть вычислены во время компиляции с использованием вычисления во время компиляции, что сводит постоянные выражения к единственному значению. Это не обязательно для корректности, но повышает производительность программы во время выполнения. Определения языков программирования обычно задают требования ко времени компиляции, которым должен соответствовать исходный код для успешной компиляции. Например, языки могут предписывать, что объем памяти, необходимый для типов и переменных, может быть определен. К свойствам программы, которые можно анализировать во время компиляции, относятся проверка границ (например, доказательство того, что индекс массива не выйдет за пределы массива), отсутствие взаимоблокировок в параллельных языках или временные характеристики (например, доказательство того, что последовательность кода занимает не более выделенного времени). Время компиляции предшествует времени компоновки (когда объединяются выходные данные одного или нескольких скомпилированных файлов) и времени выполнения (когда программа выполняется). Однако в случае динамической компиляции окончательное преобразование в машинный код происходит во время выполнения. Существует компромисс между временем компиляции и временем компоновки: многие операции времени компиляции можно отложить до времени компоновки без увеличения времени выполнения.
Most compilers have at least the following compiler phases (which therefore occur at compile time): syntax analysis, semantic analysis, and code generation. During optimization phases, constant expressions in the source code can also be evaluated at compile time using compile time execution, which reduces the constant expressions to a single value. This is not necessary for correctness, but improves program performance during runtime. Programming language definitions usually specify compile time requirements that source code must meet to be successfully compiled. For example, languages may stipulate that the amount of storage required by types and variables can be deduced. Properties of a program that can be reasoned about at compile time include range checks (e. g., proving that an array index will not exceed the array bounds), deadlock freedom in concurrent languages, or timings (e. g., proving that a sequence of code takes no more than an allocated amount of time). Compile time occurs before link time (when the output of one or more compiled files are joined) and runtime (when a program is executed). Although in the case of dynamic compilation, the final transformations into machine language happen at runtime. There is a trade off between compile time and link time in that many compile time operations can be deferred to link time without incurring run time cost.