Creating at the final stage a certainprogram, any programmer has to use the services of the compiler. The technical documentation of this program is given a rather modest definition as a utility that performs compilation. Compilation is the process of turning a program written in a language understandable to man (high-level language) into commands that are understandable for a machine (low-level language). As a result, we obtain a program that is close to the machine code. It may look like an object module, an absolute code. Sometimes such a program is similar to assembly language.
Thus, compilation is when inputinformation (source code) representing the description of the algorithm or a program written in a problem-oriented language is rewritten into an equivalent list of commands represented in the object code (computer-oriented language).
If you still simplify the definition, then compile is to translate a machine program from a problem-oriented to a machine-oriented language.
Despite the transparency and ease of definition,compilation is a fairly multifaceted process. There are several types of it. Batch compilation is carried out on several source modules in the same task item. Line-by-line compilation is the same as interpretation (step-by-step independent compilation of each subsequent statement). There is also a conditional compilation. In this case, the translated text is dependent on the conditions that are set in the source program by compiler directives.
By changing the value of a particular constant, you can adjust the on or off translation of a part of the program text.
For the convenience of programmers in solving various problems, the most convenient and adapted compilers are used. If we classify them, we can distinguish several types of such utilities.
The vectorizing compiler produces the translation of the source code into computer code, adapting to vector processors.
A flexible compiler was developed based onmodular principle. It is managed by tables. It is programmed in a high-level language. It can also be implemented using a compiler compiler.
The incremental compiler re-translates the program fragments and additions to it, while recompiling the entire program is excluded.
An interpretive or step-by-step compiler uses the principle of sequential independent compilation for each individual statement or command from the source program.
The compiler compiler is a translator that accepts a formal description for a programming language. It is able to independently generate a compiler for a specific language.
The debug compiler can fix some types of syntax errors on its own.
The resident compiler is allocated a permanent place in RAM, and it is available when reused by a wide range of tasks.
There are self-compiled compilers. They are written in the same language as the translation.
The universal compiler is based on 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 are used by themselves; this is compiling the kernel for the Linux platform. This operation allows you to solve a wide range of problems associated with the coordination of equipment and setting up the most appropriate version of the platform.
Java compilation is implemented usingcompilers running on a wide variety of platforms. This allows source codes to be recompiled for the needs of operating systems from different manufacturers.