Translators of programming languages: Compiler Vs Interpreter Difference between Compiler and Interpreter
A translator is any program that takes as input a text written in a language, called a font and outputs another text in a language, called an object.
There are differences between compilers and interpreters that derive advantages and disadvantages between them. A first difference is that the interpreters immediately signal the programmer to errors in the syntax of an instruction which allows the programmer to correct the program during its development. Complier Vs Interpreter Difference between Compiler and Interpreter?
Another difference is that interpreters do not use computing resources as efficiently as a compiled program. The interpreter, when not producing an object program, must perform the translation every time the program is executed .
- setprecision c++ | How to Use setprecision in c++
- Best laptop for programming | Good programming laptop 2017
- Programming Languages that you must learn in 2017
- Programming languages that are in demand
- Most popular programming languages
- Best Laptop for Programming and Developers 2017
- Best linux laptop for developers 2017
There are different types of translators, including: Compiler Vs Interpreter Difference between Compiler and Interpreter
- Assemblers
- Preprocessors
- Interpreters
- Compilers
Differences between Compiler and Interpreter
Compilers differ from interpreters in several ways:
- A program that has been compiled can run on its own, because in the compilation process it is transformed into another language (machine language).
- An interpreter translates the program when it reads, converting the program code directly into actions.
- The advantage is that because the interpreter can interpret any program on any platform (operating system), instead the file generated by the compiler only works on the platform where it has been created.
- On theother hand a compiled file can be distributed easily knowing the platform, while an interpreted file does not work if you do not have the interpreter.
- Speaking of the execution speed a compiled file is faster than an interpreted file.
There are two ways to run programs written in a high level language. The most common is to compile the program and the other method is to pass the program through an interpreter. Both the interpreter and the compiler are intended to translate the instructions received into a language that the team can understand.
The differences between interpreter and compiler are: Compiler Vs Interpreter Difference between Compiler and Interpreter
- An interpreter translates high-level instructions into an intermediate form to be executed. In contrast, a compiler translates high-level instructions directly into machine language.
- The interpreter translates a program line by line while the compiler translates the entire program and then executes it.
- The interpreter detects if the program has errors and allows them to be debugged during the execution process, while the compiler waits until the compilation of the entire program is complete to generate an error report.
- A compiled program is more secure than one interpreted because it does not contain the source code, which can be incorrectly modified by the user.
Both interpreters and compilers are available in most high-level languages.
Difference between assembler, compiler and interpreter.
Assembler
Assemblers are programs that process the statements of the source program in assembly language and translate them into machine language files that are executed by a microprocessor or microcontroller.
Assemblers allow source programs to be written and edited on one computer to generate executable code on another computer. The resulting executable object language file is loaded and executed on the target system.
Compiler
A compiler is a translator that translates texts from high-level language sources into low-level languages. A compiler typically operates in phases, each one performing a task on the source program.
A compiler is a computer program that translates a program written in a programming language into another programming language, generating an equivalent program that the machine will be able to interpret. Usually the second language is machine language , but it can also be an intermediate code ( bytecode ), or simply text. This translation process is known as compilation.
The construction of a compiler involves the division of the process into a series of phases that will vary with its complexity. Generally these phases are grouped into two tasks: the analysis of the source program and the synthesis of the object program. ·
Analysis : This is the verification of the correction of the source program, and includes the phases corresponding to the lexical analysis (which consists of the decomposition of the source program into lexical components), Syntactic analysis (grouping of lexical components into grammatical phrases) and Semantic analysis (check of the semantic validity of the sentences accepted in the phase of Syntactic Analysis).
·
Synthesis : Its objective is the generation of the output expressed in the object language and usually consists of one or more combinations of Code Generation phases (usually intermediate code or object code) and Code Optimization (in Which are looking for a code as efficient as possible).
Alternatively, the steps described for the tasks of analysis and synthesis can be divided into front and back ends: ·
Front-end : is the part that analyzes the source code , checks the validity, generates the derivation tree and fills Values of the symbol table . This part is usually independent of the platform or system for which it will be compiled, and is composed of the phases between Lexical Analysis and Intermediate Code Generation.
·
Back-end : it is the part that generates the machine code, specific of a platform, from the results of the analysis phase, realized by the Front End.
EXECUTION : Complier Vs Interpreter Difference between Compiler and Interpreter
In computing , run is the action of starting the load of a program or any executable file . In other words, execution is the process by which a computer carries out the instructions of a computer program. You can run compiled programs (for example, Windows, .EXE ) or interpreted programs(for example, scripts ). Running a program implies that it will be in a state of execution and, therefore, in memory, until it is finished.
Some bibliographies extend the definition of execution and include loading files that are not executable. For example, when you run a JPG image and open the program to display it, or when you run an MP3 sound and the audio player opens. Technically speaking, what is actually running is the program that is responsible for interpreting the non-executable file. In Windows , most programs that are running are listed in Task Manager , from where they can be finalized.
Linkers
It is a program that links all the programs or modules obtaining what we call executable program.
Interpreter
It is a computer program capable of analyzing and executing other programs, written in a high level language. Interpreters differ from compilers in that while they translate a program from its description in a programming language to the system machine code, interpreters only translate as needed, typically instruction by instruction, and usually do not Save the result of that translation.
It is clear then that the commands that we have written what is known as “source program” must be converted to what the computer understands obtaining the “executable program”.
If we choose a low-level language, like the Assembly (abbreviated as Asm), the translation is simple, and to do that translation, we take care of tools called assemblers.
When the language we have used is high level, the translation is more complicated, and sometimes it will also involve collecting several different sources or including possibilities found in other libraries that we have not prepared ourselves. The tools in charge of doing all this are the compilers.
The executable program obtained with the compiler or assembler could be run on another computer similar to the one we used to create it, without the need for that other computer to have the compiler or assembler installed.
For example, in the case of Windows (and MsDos), and the program that greets us in Pascal, we would have a source file called SALUDO.PAS. This file would be useless on a computer that did not have a Pascal compiler. Instead, after compiling it we would get a file SALUDO.EXE, capable of running on any other computer that had the same operating system, even if it does not have a Pascal compiler installed.
An interpreter is a tool like a compiler, with the difference that interpreters do not Creates an “executable program” capable of working “on its own,” so if we want to distribute our program to someone, we will have to give you the source program and also the interpreter who is able to understand it, or it will not do you any good. The program in operation, the interpreter is responsible for converting the program into high-level language to machine code, order by order, just when you have to process each of the orders.
Today there is something that seems intermediate between a compiler and an interpreter. There are languages that are not compiled to an executable for a specific computer, but to a “generic” executable, that is able to work in different types of computers, provided that in that computer exists a “virtual machine” able to understand those Executables.
This is the idea that is applied in Java: fonts are text files, with extension “.java”, which are compiled into “.class” files. These “.class” files could be taken to any computer that has a “Java virtual machine” installed (there are for most operating systems). This same idea is followed in the C # language, which relies on a virtual machine called “Dot Net Framework”
What are the differences between the Source, Object and Executable Program?
The source is written in the programming language, not understandable for the computer.
The object is understandable for the computer, but it can not be executed.
The executable is the object combined with a few more things so the machine can understand and execute it.
Anyway, if you need a correct answer, that satisfies your needs and do not leave you any doubt, you should ask KARIN LAHTI, who knows everything about computers. Compiler Vs Interpreter Difference between Compiler and Interpreter?
Leave a Reply