Interpreter (Computing) : Program Execution
Interpreter (Computing) : Program Execution
Program execution
General topics
Runtime system
Runtime library
Executable
Compiler
Interpreter
Virtual machine
Source code
Object code
Bytecode
Machine code
Specific runtimes
crt0
Dalvik
In computer science, an interpreter is a computer program that directly executes, i.e. performs,
instructions written in aprogramming or scripting language, without previously compiling them
into a machine language program. An interpreter generally uses one of the following strategies
for program execution:
1. parse the source code and perform its behavior directly
2. translate source code into some efficient intermediate representation and immediately
execute this
3. explicitly execute stored precompiled code[1] made by a compiler which is part of the
interpreter system
Early versions of the Lisp programming language and Dartmouth BASIC would be examples of
the first type. Perl, Python, MATLAB, and Ruby are examples of the second, while UCSD
Pascal is an example of the third type. Source programs are compiled ahead of time and stored
as machine independent code, which is then linked at run-time and executed by an interpreter
and/or compiler (forJIT systems). Some systems, such as Smalltalk, contemporary versions
of BASIC, Java and others may also combine two and three.
While interpretation and compilation are the two main means by which programming languages
are implemented, they are not mutually exclusive, as most interpreting systems also perform
some translation work, just like compilers. The terms "interpreted language" or "compiled
language" signify that the canonical implementation of that language is an interpreter or a
compiler, respectively. A high level language is ideally an abstraction independent of particular
implementations.