Chemistry Reference and  Research
           
 
Periodic Table
- standard table
- large table
 
Chemical Elements
- by name
- by symbol
- by atomic number
 
Chemical Properties
 
Chemical Reactions
 
Organic Chemistry
 
Branches of Chemistry
Analytical chemistry
Biochemistry
Computational Chemistry
Electrochemistry
Environmental chemistry
Geochemistry
Inorganic chemistry
Materials science
Medicinal chemistry
Nuclear chemistry
Organic chemistry
Pharmacology
Physical chemistry
Polymer chemistry
Supramolecular Chemistry
Thermochemistry

Interpreted language

In computer programming, an interpreted language is a programming language whose programs may be executed from source form, by an interpreter. Any language may, in theory, be compiled or interpreted; therefore, this designation refers to languages' implementations rather than designs. In fact, many languages have both compilers and interpreters, including C, BASIC, and Python.

This term has no meaning in computer science, which strictly distinguishes between languages and implementations. However, people often use it as a useful shortcut to signify languages that are traditionally interpreted, or for which no compilers are written.

Contents

Historical background

In the early days of computing, language design was heavily influenced by the decision to use compilation or interpretation as a mode of execution. For example, some compiled languages require that programs must explicitly state the data-type of a variable at the time it is declared or first used. On the other hand, some languages take advantage of the dynamic aspects of interpretation to make such declarations unnecessary. For example, Smalltalk—which was designed to be interpreted at run-time—allows generic Objects to dynamically interact with each other.

Initially, interpreted languages were compiled line-by-line; that is, each line was compiled as it was about to be executed, and if a loop or subroutine caused certain lines to be executed multiple times, they would be recompiled every time. This has become much less common. Most so-called interpreted languages use an intermediate representation, which combines both compilation and interpretation. In this case, a compiler may output some form of bytecode, which is then executed by a bytecode interpreter. Examples include Python, Java, and Perl. Similarly, Ruby uses an abstract syntax tree as intermediate representation. The intermediate representation can be compiled once and for all, like Java, each time before execution like Perl or Ruby, or each time a change in the source is detected before execution like Python.

Language features suiting interpreters well

Interpreted languages still give programs certain extra flexibility over compiled languages. Features that are easier to implement in interpreters than in compilers include (but are not limited to):

  • platform independence (Java's byte code, for example)
  • reflective usage of the evaluator (e.g. a first-order eval function)
  • ease of debugging (It is easier to get source code information in interpreted language)
  • small program size (Since interpreted languages have flexibility to choose instruction code)
  • object polymorphism
  • Dynamic scoping

List of frequently interpreted languages

  • BASIC (although the original version, Dartmouth BASIC, was compiled, as are most modern BASICs)
  • Euphoria
  • Forth (traditionally threaded interpreted)
  • JavaScript
  • Logo (interpretation makes interactivity easier)
  • MUMPS (traditionally interpreted, modern versions compiled)
  • Perl (compiled to bytecode which is then interpreted)
  • PHP
  • Python (compiled to bytecode which is then interpreted)
  • Ruby

See also

01-04-2007 01:16:19
The contents of this article are licensed from Wikipedia.org under the GNU Free Documentation License. How to see transparent copy