On Thu, Jan 13, 2011 at 8:16 AM, Brian Nicar <surprisevalley / verizon.net>wrote:

> As I see it, a language that is interpreted utilizes a middle-man to make
> calls to the system, allowing for greater flexibility when generating and
> modifying code in a dynamic environment.


I'd say that's fairly close to my definition.

Compiled languages translate the source code into machine language and
execute it directly on the host CPU. Source code can either be compiled
ahead-of-time (e.g. with a compiler you invoke that outputs a host
executable) or just-in-time (JIT) as the programming language is executing.

Interpreted languages use a virtual machine or AST walker to perform the
execution. There can be an intermediate step wherein the source code is
translated to an intermediate bytecode.

Many language runtimes implement a hybrid of these two approaches, and start
by interpreting all code then finding "hot spots" via runtime profiling and
compiling those.

-- 
Tony Arcieri
Medioh! Kudelski