Compile time: Difference between revisions

From Rosetta Code
Content added Content deleted
(Created)
 
m (Moved to life cycle cat, link)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
[[Category:Program life cycle]]'''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''.
[[Category:Encyclopedia]]


In particular [[type checking|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.
'''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''.


The phases following to compile time are [[link time]] and [[run time]].
In particular statically typed languages are often backed with the argument that errors has to be detected as early as possible. Some languages were especially designed in a way to support an extensive static analysis of the program semantics.


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.
The phases following to compile time are link time and run time.

The compile-time actions are undertaken by the [[compiler]]/[[interpreter]]. These include lexical, syntax, and semantic analysis followed by code generation and maintenance of the language development environment, and error diagnostic. For the [[compiler]] the generated code is usually intermediate. For an [[interpreter]] the code is targeted for the 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.

Latest revision as of 15:28, 26 August 2008

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 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.

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.