Compiler analysis is a set of algorithms to determine the properties of a program's data and control structure. The result is used to ensure the feasibility and correctness of futher compiler optimizations. The scope of compiler analysis can be local and global, ranging from a basic blocks, functions to the whole program. Typical compiler analyses are: Compiler optimization techniques are optimization techniques that have been programmed into a compiler. ... In computing, a basic block is a straight-line piece of code without any jumps or jump targets in the middle; jump targets, if any, start a block, and jumps end a block. ... Look up Function on Wiktionary, the free dictionary In general (not in the mathematical but in the engineering sense), a function is a goal-oriented property of an entity (according to the Adam Maria Gadomskis TOGA meta-theory, 1993). ...
A simple way to perform dataflow analysis (DFA) of programs is to set up dataflow equations for each node of the control flow graph (CFG) and solve them by repeatedly calculating the output from the input locally at each node until the whole system stabilizes, i. ... A Definition-Use Chain (DU Chain) is a function which is very frequently used in data flow analysis. ... In compiler theory, dependence analysis produces execution-order constraints between statements/instructions. ...
Most compilers translate source code written in a high level language to object code or machine language that may be directly executed by a computer or a virtual machine.
Compilers also exist which translate from one high level language to another (cross compilers), or sometimes to an intermediate language that still needs further processing; these are sometimes known as cascaders.
During the 1990s a large number of free compilers and compiler development tools were developed for all kinds of languages, both as part of the GNU project and other open-source initiatives.