How interpreters and compilers differ in how they translate

Cards (6)

  • Any program written in a high-level language is known as source code. However, computers cannot understand source code. Before it can be run, source code must first be translated into machine code.
    translator is a program that converts source code into machine code. Generally, there are three types of translator:
    • compilers
    • interpreters
    • assemblers
  • Compilers
    A compiler takes the source code as a whole and translates it into machine code all in one go. Once converted, the machine code can be run at any time. This process is called compilation.
    Compilers have several advantages:
    • Compiled programs run quickly, since they have already been translated.
    • A compiled program can be supplied as an executable file. An executable file is a file that is ready to run. Since an executable file cannot be easily modified, programmers prefer to supply executables rather than source code.
    • Compilers optimise code. Optimised code can run quicker and take up less memory space.
    Compilers have several disadvantages:
    • The source code must be re-compiled every time the programmer changes the program.
    • Source code compiled for one platform will not run on another - the machine code is specific to the central processing unit’s (CPU) architecture.
  • Interpreters
    An interpreter translates source code into machine code one instruction at a time. It is similar to a human translator translating what a person says into another language, sentence by sentence, as they speak. The resulting machine code (sometimes called object code) is then executed immediately. The process is called interpretation.
    Interpreters have several advantages:
    • Instructions are executed as soon as they are translated.
    • Errors can be quickly spotted - the moment an error is found, the program stops running and the user is notified at which part of the program the interpretation has failed. This makes interpreters extremely useful when developing programs.
    I
  • nterpreters also have several disadvantages:
    • Interpreted programs run more slowly as the processor has to wait for each instruction to be translated before it can be executed.
    • Additionally, the program has to be translated every time it is run.
    • Interpreters do not produce an executable file that can be distributed. As a result, the source code program has to be supplied, and this could be modified without permission.
    • Interpreters do not optimise code - the translated code is executed as it is.
  • Assemblers
    Assemblers are a third type of translator. The purpose of an assembler is to translate assembly language into machine code. Whereas compilers and interpreters generate many machine code instructions for each high-level instruction, assemblers create one machine code instruction for each assembly instruction.
  • Assemblers
    Assemblers are a third type of translator. The purpose of an assembler is to translate assembly language into machine code. Whereas compilers and interpreters generate many machine code instructions for each high-level instruction, assemblers create one machine code instruction for each assembly instruction.