Brookshear (2010, p.264) says “rather than producing a machine-language copy of a program that would be executed later, an interpreter actually executed a program from its high-level form.” In my experience the primary benefit of interpreted languages is the immediacy of the results. If one considers UNIX shells as interpreters I use interpretation daily, although software development isn't a major focus of mine. Interpretation has the additional benefit of nearly total platform independence.

I would venture that most applications that require maximum performance are compiled. Vanguard (2009) says of compilation: “With a compiled language, code you enter is reduced to a set of machine-specific instructions before being saved as an executable file.” And this is the source of the well-known speed advantage. With actual machine instructions residing in mass storage the main bottle-neck is getting the program loaded from there into memory and onto the processor. There is no need for a line by line analysis of a higher level language or even opcodes, the program can run as fast as the machine can process. A downside of this is that it will probably be a more involved undertaking to debug.

With the advent of Just In Time compilation the line is getting a bit blurry. Virtual machines such as the Java VM and the .NET framework also make it a little tricky to say whether interpreting or compiling is in use. Python is another example of ambiguity with its bytecode (Wikipedia, 2010), as is PHP with its Zend engine (Zend, 2010). One way to determine whether a program is really compiled or not is to attempt to disassemble it. If the file makes sense as a series of instructions for the hardware platform it runs on then it fits the definition of a compiled program.

But “the elementary primitives in which a product must ultimately be constructed are not necessarily the primitives that should be used during the products design” (Brookshear, 2009, p.263). Compilers allow any high-level language anyone has cared to implement of course, but the results of their use are most easily machine readable. So despite their performance shortcomings interpreters will likely be with us for some time, as they can ease the implementation of such features as polymorphism and self-modifying code, and supply that instant gratification of sometimes getting the job done with one line.

Brookshear, J. Glenn (2009) Computer Science: An Overview, 10th ed. Boston: Pearson Education, Inc.

Vanguard Software (2009) Compiled vs. Interpreted Languages [Online]. Available from: (Accessed: 21 February, 2010).

Wikipedia (2010) Python (programming language) [Online]. Available from: (Accessed: 21 February, 2010).

Zend Technologies, Ltd. (2010) Zend Framework [Online]. Available from: (Accessed: 21 February, 2010).