Compile time: Difference between revisions
Content added Content deleted
(Created) |
m (added some links, spelling/grammar) |
||
Line 3: | Line 3: | ||
'''Compile time''' refers to the compilation phase of the program life cycle. The actions undertaken at this stage are referred as ''compile-time'', ''static'', and sometimes as ''early''. The term ''static'' is used in order to stress that the properties provable at compile-time stay valid for the program as a whole, and thus do not depend on the program's dynamic execution state. The term ''early'' is used as an opposite to ''late''. |
'''Compile time''' refers to the compilation phase of the program life cycle. The actions undertaken at this stage are referred as ''compile-time'', ''static'', and sometimes as ''early''. The term ''static'' is used in order to stress that the properties provable at compile-time stay valid for the program as a whole, and thus do not depend on the program's dynamic execution state. The term ''early'' is used as an opposite to ''late''. |
||
In particular statically typed languages are often backed with the argument that errors |
In particular statically typed languages are often backed with the argument that errors need to be detected as early as possible. Some languages were specifically designed in a way to support an extensive static analysis of the program semantics. |
||
The phases following to compile time are link time and run time. |
The phases following to compile time are [[link time]] and [[run time]]. |
||
Compile-time actions are undertaken by a [[compiler]] or [[interpreter]]. These include lexical, and syntax and semantic analysis followed by [[code generation]], maintenance of the language development environment and error diagnostics. In a [[compiler]] the generated code is usually intermediate. In an [[interpreter]] the code is targeted for a corresponding virtual machine and is immediately executed on it. |
|||
Examples of use: compile-time error detection, compile-time object, compile-time constant, static analysis, static typing, static expression, early binding. |
Examples of use: compile-time error detection, compile-time object, compile-time constant, static analysis, static typing, static expression, early binding. |