|This article or section needs additional citations for verification. Its information may not be accurate. Editors can help by adding references. (May 2016)|
In programming, Interpretation is the process of one program reading and executing code. In simpler terms, it is when a program, called an Interpreter, reads code and does actions based upon it.
In Computer Science, machine code is formatted to directly give instructions to the processor. On the other hand, interpreted code is still in a more abstracted format and must be read by another program which can either be compiled or interpreted itself.
One benefit of interpreted code is that it does not pose security threats, as the interpreting program itself chooses which parsed statements to act upon. For example, since compiled code can give direct instructions to a processor, someone could easily compile malicious code. However, if human-readable words are being interpreted by a program, then the interpreter can only preform instructions for phrases in its "dictionary" or syntax.
Back in the 1980s and 1990s, inefficiency was more of a problem with interpreted languages. Not many of these existed aside from raw HTML code that was very slowly transferred along the young Internet and was interpreted by old web browsers. Nowadays, the processing power of computers has increased at such a high increment, worrying about inefficiency is not as problematic but still is a problem. Scratch is the perfect example of how interpreted code can result in limitations.
Scratch is interpreted by Action-Script which itself is an interpreted language. This, therefore, makes Scratch very limited in terms of raw power dedicated to a single project. This does not pose much of a threat to Scratch since it is meant for simple projects, but PC games that run on interpreted code (rarely) typically cannot render as slick graphics and cannot handle as much data processing. Adobe Flash 3D games found online are examples of how interpreted code is limited to certain amounts of objects.