Compilation is a process that facilitates communication between a programmer and a computer
By creating at the final stage a certainprogram, any programmer has to access the services of the compiler. In the technical documentation, this program has a fairly modest definition as a utility that performs compilation. Compilation is the process of converting a program written in a language understood by a person (high-level language) into commands understandable to the machine (low-level language). As a result, we get a program that is close to the machine code. It can look like an object module, an absolute code. Sometimes such a program is similar to the language of assembler.
Thus, compilation is when the inputInformation (source code), representing the description of the algorithm or written in a problem-oriented language program, is rewritten into an equivalent list of commands presented in the object code (machine-oriented language).
If we simplify the definition, then compile is to translate the machine program from a problem-oriented machine-oriented language.
Despite the transparency and simplicity of the definition,compilation is a multi-faceted process. There are several of its types. Batch compilation is performed on several source modules in one task item. A line-by-line compilation is the same as an interpretation (a step-by-step independent compilation of each subsequent statement). There is also a conditional compilation. In this case, the translated text has a dependency on the conditions that are specified in the source program by the compiler directives.
Changing the value of a certain constant, you can adjust the inclusion or deactivation of the translation of a part of the program text.
For the convenience of programmers, when solving various problems, the most convenient and adapted compilers are used. If you classify them, you can distinguish several types of similar utilities.
The vectorizing compiler translates source code into computer-generated computer code, adjusting itself to vector processors.
A flexible compiler was developed based onmodular principle. Its management is carried out by tables. It is programmed in a high-level language. It is also possible to implement it using the compiler compiler.
The incremental compiler re-broadcasts the program fragments and its add-ons, while recompiling the entire program is eliminated.
An interpretive or step-by-step compiler uses the principle of sequential execution of independent compilation for each individual operator or command from the source program.
The compiler compiler is a translator that accepts a formal description for the programming language. It is able to generate a compiler for a specific language.
The debugger compiler can eliminate some types of syntax errors.
The resident compiler is allocated a permanent place in the RAM, and it is available when reusing a wide range of tasks.
There are self-compiled compilers. They are written in the same language from which the translation takes place.
The universal compiler has in the base a formal description of the semantics and syntax of the input language. It consists of a kernel, syntactic and semantic loaders.
The most common tasks, wherecompilers find their use, is the kernel compilation for the Linux platform. This operation allows to solve a wide range of problems related to the alignment of equipment and setting the most acceptable version of the platform.
Java compilation is implemented usingcompilers running on a wide variety of platforms. This allows the source code to be recompiled to the needs of operating systems from different manufacturers.