Executable

executable fileexecutable codebinariesexecutable programbinaryexecutable filesexecutables.exebinary copiesbinary executable
In computing, executable code or an executable file or executable program, sometimes simply referred to as an executable, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data file that must be parsed by a program to be meaningful.wikipedia
395 Related Articles

Source code

codesourcesource file
Executable files can be hand-coded in machine language, although it is far more convenient to develop software as source code in a high-level language that can be easily understood by humans.
Most application software is distributed in a form that includes only executable files.

Data (computing)

datacomputer datadata representation
In computing, executable code or an executable file or executable program, sometimes simply referred to as an executable, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data file that must be parsed by a program to be meaningful.
Executable files contain programs; all other files are also data files.

Compiler

compiledcompilerscompile
The high-level language is compiled into either an executable machine code file or a non-executable machine-code object file of some sort; the equivalent process on assembly language source code is called assembly.
The name compiler is primarily used for programs that translate source code from a high-level programming language to a lower level language (e.g., assembly language, object code, or machine code) to create an executable program.

Linker (computing)

linkerlinkedlinkers
Several object files are linked to create the executable.
In computing, a linker or link editor is a computer utility program that takes one or more object files generated by a compiler or an assembler and combines them into a single executable file, library file, or another 'object' file.

Executable and Linkable Format

ELF86openbinaries
Object files -- executable or not -- are typically in a container format, such as Executable and Linkable Format (ELF).
In computing, the Executable and Linkable Format (ELF, formerly named Extensible Linking Format), is a common standard file format for executable files, object code, shared libraries, and core dumps.

Machine code

machine languagenative codemachine instruction
"Instructions" is traditionally taken to mean machine code instructions for a physical CPU, in some contexts a file containing bytecode or scripting language instructions may also be considered executable.
Today, most processors implement such separate signal pathways for performance reasons but implement a Modified Harvard architecture, so they can support tasks like loading an executable program from disk storage as data and then executing it.

Code segment

code.textcode segment(.text)
This structures the generated machine code, for example dividing it into sections such as the .text (executable code), .data (static variables), and .rodata (static constants).
In computing, a code segment, also known as a text segment or simply as text, is a portion of an object file or the corresponding section of the program's virtual address space that contains executable instructions.

Object file

object code.objobject
The high-level language is compiled into either an executable machine code file or a non-executable machine-code object file of some sort; the equivalent process on assembly language source code is called assembly.
It is possible for the same file format to be used both as linker input and output, and thus as the library and executable file format.

Entry point

main functionargvmain
Most simply a file is executed by loading the file into memory and simply jumping to the start of the address space and executing from there, but in more complicated interfaces executable files have additional metadata, specifying a separate entry point.
In simple systems, execution begins at the first statement, which is common in interpreted languages, simple executable formats, and boot loaders.

Data segment

rodata.data.rodata
This structures the generated machine code, for example dividing it into sections such as the .text (executable code), .data (static variables), and .rodata (static constants).
The code segment, also known as a text segment or simply as text, is where a portion of an object file or the corresponding section of the program's virtual address space that contains executable instructions is stored and is generally read-only and fixed size.

GNU Compiler Collection

GCCGNU C Compilerg++
In the GCC (GNU Compiler Collection) this field is set by the linker based on the symbol.
Users invoke a language-specific driver program ( for C, for C++, etc.), which interprets command arguments, calls the actual compiler, runs the assembler on the output, and then optionally runs the linker to produce a complete executable binary.

Comparison of executable file formats

* Comparison of executable file formats
This is a comparison of binary executable file formats which, once loaded by a suitable executable loader, can be directly executed by the CPU rather than become interpreted by software.

Crt0

((constructor))C runtime startup routineGlobal constructor
For C, this is done by linking in the crt0 object, which contains the actual entry point and does setup and shutdown by calling the runtime library.
It generally takes the form of an object file called crt0.o, often written in assembly language, which is automatically included by the linker into every executable file it builds.

Firmware

BadUSBflashingflash
In order to be executed by the system (such as an operating system, firmware, or boot loader), an executable file must conform to the system's application binary interface (ABI).
As a potential solution to this problem, he has called for declarative firmware, which would describe "hardware linkage and dependencies" and "should not include executable code".

Exit status

exit codetermination status
Executable files typically also include a runtime system, which implements runtime language features (such as task scheduling, exception handling, calling static constructors and destructors, etc.) and interactions with the operating system, notably passing arguments, environment, and returning an exit status, together with other startup and shutdown features such as releasing resources like file handles.
In DOS terminology, an errorlevel is an integer exit code returned by an executable program or subroutine.

Computing

computer technologycomputing technologyapplied computing
In computing, executable code or an executable file or executable program, sometimes simply referred to as an executable, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data file that must be parsed by a program to be meaningful.

Instruction set architecture

instruction setinstructionsinstruction
In computing, executable code or an executable file or executable program, sometimes simply referred to as an executable, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data file that must be parsed by a program to be meaningful.

Parsing

parserparseparsed
In computing, executable code or an executable file or executable program, sometimes simply referred to as an executable, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data file that must be parsed by a program to be meaningful.

Central processing unit

CPUprocessorprocessors
"Instructions" is traditionally taken to mean machine code instructions for a physical CPU, in some contexts a file containing bytecode or scripting language instructions may also be considered executable.

Bytecode

byte codebyte-codeintermediate code
"Instructions" is traditionally taken to mean machine code instructions for a physical CPU, in some contexts a file containing bytecode or scripting language instructions may also be considered executable.

Scripting language

scriptingscriptscripts
"Instructions" is traditionally taken to mean machine code instructions for a physical CPU, in some contexts a file containing bytecode or scripting language instructions may also be considered executable.

High-level programming language

high-levelhigh-level languagehigh level language
Executable files can be hand-coded in machine language, although it is far more convenient to develop software as source code in a high-level language that can be easily understood by humans.

Assembly language

assemblerassemblyassembly code
In some cases, source code might be specified in assembly language instead, which remains human-readable while being closely associated with machine code instructions.

Digital container format

container formatcontainercontainer formats
Object files -- executable or not -- are typically in a container format, such as Executable and Linkable Format (ELF).

Booting

bootloaderboot loaderboot
In order to be executed by the system (such as an operating system, firmware, or boot loader), an executable file must conform to the system's application binary interface (ABI).