Interpreters

Interpreters are computer programs that translate instructions in the input language (called the source language) into the actions specified by the instructions. These actions are usually themselves represented as programs in some high-level or low-level language.

What distinguishes interpreters from compilers is that interpreters translate and execute in an interleaved fashion with read/eval/print loops, whereas compilers translate large chunks of code all at once. This carries the advantage of enabling interactive program development and debugging. Modern languages use a mix of interpretation and compilation - compilation for established programs and interpretation for programs under development.

Interpreters need to maintain memory in order to keep track of name-object pairs. This memory structure is called an environment.
environments = big scopes


Links

Sources