1. Computer assignment for grade 9
Bereket Solomun
Compiler and interpreter, both basically serve the same purpose. They convert one level of
language to another level. A compiler converts the high level instructions into machine
language while an interpreter converts the high level instruction into some intermediate
form and after that, the instruction is executed.
Compiler
A compiler is defined as a computer program that is used to convert high level instructions
or language into a form that can be understood by the computer. Since computer can
understand only in binary numbers so a compiler is used to fill the gap otherwise it would
have been difficult for a human to find info in the 0 and 1 form.
Earlier the compilers were simple programs which were used to convert symbols into bits.
The programs were also very simple and they contained a series of steps translated by hand
into the data. However, this was a very time consuming process. So, some parts were
programmed or automated. This formed the first compiler.
More sophisticated compliers are created using the simpler ones. With every new version,
more rules added to it and a more natural language environment is created for the human
programmer. The complier programs are evolving in this way which improves their ease of
use.
There are specific compliers for certain specific languages or tasks. Compliers can be
multiple or multistage pass. The first pass can convert the high level language into a
language that is closer to computer language. Then the further passes can convert it into
final stage for the purpose of execution.
Interpreter
The programs created in high level languages can be executed by using two different ways.
The first one is the use of compiler and the other method is to use an interpreter. High level
instruction or language is converted into intermediate from by an interpreter. The
advantage of using an interpreter is that the high level instruction does not goes through
compilation stage which can be a time consuming method. So, by using an interpreter, the
high level program is executed directly. That is the reason why some programmers use
interpreters while making small sections as this saves time.
2. Almost all high level programming languages have compilers and interpreters. But some
languages like LISP and BASIC are designed in such a way that the programs made using
them are executed by an interpreter.
Difference between compiler and interpreter
• A complier converts the high level instruction into machine
language while an interpreter converts the high level
instruction into an intermediate form.
• Before execution, entire program is executed by the compiler
whereas after translating the first line, an interpreter then
executes it and so on.
• List of errors is created by the compiler after the compilation
process while an interpreter stops translating after the first
error.
• An independent executable file is created by the compiler
whereas interpreter is required by an interpreted program
each time.
What is the main difference between an
interpreter and a compiler?
Computer Programming Questions
Answer
The execution of a program can happen either natively -- the intructions are actual CPU
instructions, or it can happen through an interpreter. The interprer thus takes instructions (which
are typically not native CPU instructions), and performs the actions associated with the
instruction (open a file, write a character to the screen, etc). The interpreter is thus in charge of
the execution of the program instructions.
Now consider a program written in spoken English. It is obvious that the CPU does not
understand spoken English. We can either use an interpreter to execute this program, or we can
translate to "another form" (typically machine code specific to a particular CPU) -- using a
compiler. This "other form" may require additional things to happen, so the compiler may insert
extra instructions to cater for these things. The end result is our spoken English program, in
3. another form -- either native, which can be executed by the CPU, or an a form which requires
that an interpreter be used to execute it.
The interested reader is encouraged to read Allan Turing's groundbreaking paper on computing
machines entitled "On computable numbers: With an application to the Entscheidungsproblem".
You can find this easily by simply searching for this title with your favourite search engine.
Another Answer
We usually prefer to write computer programs in languages we understand rather than in
machine language, but the processor can only understand machine language. So we need a way
of converting our instructions (source code) into machine language. This is done by an
interpreter or a compiler.
An interpreter reads the source code one instruction or line at a time, converts this line into
machine code and executes it. The machine code is then discarded and the next line is read. The
advantage of this is it's simple and you can interrupt it while it is running, change the program
and either continue or start again. The disadvantage is that every line has to be translated every
time it is executed, even if it is executed many times as the program runs. Because of this
interpreters tend to be slow. Examples of interpreters are Basic on older home computers, and
script interpreters such as JavaScript, and languages such as Lisp and Forth.
A compiler reads the whole source code and translates it into a complete machine code program
to perform the required tasks which is output as a new file. This completely separates the source
code from the executable file. The biggest advantage of this is that the translation is done once
only and as a separate process. The program that is run is already translated into machine code so
is much faster in execution. The disadvantage is that you cannot change the program without
going back to the original source code, editing that and recompiling (though for a professional
software developer this is more of an advantage because it stops source code being copied).
Current examples of compilers are Visual Basic, C, C++, C#, Fortran, Cobol, Ada, Pascal and so
on.
You will sometimes see reference to a third type of translation program: an assembler. This is
like a compiler, but works at a much lower level, where one source code line usually translates
directly into one machine code instruction. Assemblers are normally used only by people who
want to squeeze the last bit of performance out of a processor by working at machine code level.
Compiler
A Compiler is a program that translates code of a programming language in machine code
*****Translated source code into machine code***** .
A compiler is a special program that processes statements written in a particular programming
language and converts them into machine language, a "binary program" or "code," that a
computer processor uses.
4. A compiler works with what are sometimes called 3GL and higher-level languages (3rd-
generation languages, such as Java and C
Interpreter
Interpreters translate code one line at time, executing each line as it is "translated," much the way
a foreign language interpreter would translate a book, by translating one line at a time.
Interpreters do generate binary code, but that code is never compiled into one program entity.
Interpreters offer programmers some advantages that compilers do not. Interpreted languages are
easier to learn than compiled languages, which is great for beginning programmers. An
interpreter lets the programmer know immediately when and where problems exist in the code;
compiled programs make the programmer wait until the program is complete.
Interpreters therefore can be easier to use and produce more immediate results; however the
source code of an interpreted language cannot run without the interpreter.
Compilers produce better optimized code that generally run faster and compiled code is self
sufficient and can be run on their intended platforms without the compiler present