Program lifecycle phase
A program lifecycle phase is a distinct period of time that is relevant to the operation of a computer program as it transitions from development to execution. Any distinct period in a program's life cycle in which the operational state of the program changes can be identified as a time. For example, compile time is when a program is compiled and link time is when a program is linked. Also, phases can often be divided into component phases. For example, build time might be divided into compile and link times, compile time into parse and code-generation times, and run time into initialization and normal-operation times.
A program tends to transition through phases in sequences, but often not from first to last and sometimes some are skipped. For example, when programming, a developer may repeatedly edit, build, and run a program without distributing or installing it. After programming is complete, then it may be distributed to and installed by a user.
Even though the term program lifecycle phase is less than notable, the times are well-known, commonly-used and notable. The collective term is used for this article for lack of a better term.
Examples
The operational phases of a program vary by its development technology. For example, a compiled program involves compile and link phases, but an interpreted program has no such phases is distributed as source code. Even for compiled programs, the phases vary. For example, some runtimes include a just-in-time compilation phase, yet more traditional runtimes do not.The phases for a program that is compiled to a host-native executable typically include:
; Design time : When the program source code is being authored. This includes initial coding as well as bug fixes, new features, and refactoring.
; Compile time: When source code is compiled to object code machine code plus information for linking.
; Link time: When object code and external libraries are linked combined to form an executable. Functions and data from a library are linked either via static linking or dynamic linking.
; Distribution time: When the program is transferring to a user often downloaded from the Internet or via physical media such as a USB flash drive.
; Installation time: When the program is installed. The executable and related files are stored such that the host computer can readily run the program.
; Load time: When the program is loaded including copying the machine code into executable memory and resolving dynamic linkages.
; Run time: When the program is running. The central processing unit executes the program's machine code instructions.