What is it?
An Interpreted language is a language which has most of it’s implementations execute instructions directly and freely, without the need to compile the program into machine-language instructions. The way it works is that the interpreter executes the program directly, and translates each statement into a sequence of one or more subroutines into another language, such as machine code.
- Platform Independence – Interpreted languages can be executed on many platforms as they are not compiled in a particular way. This means they can be easily implemented into different platforms.
- Dynamic Typing
- Smaller executable size – Since the program is interpreted live, it doesn’t require as much space as a compiler which would put the program into a single file would.
- Dynamic Scoping
- Less reliability – There is no type-checking as there usually would be with a compiler, which means that there is lower reliability as type checking would normally eliminate a class of programming errors.
- Susceptible to attacks – Interpreters are often susceptible to code injection attacks as they read the code line by line, meaning that if someone were to inject malicious code it will also be read.
- Slower execution – Compared to a compiled program which uses the systems processing power to execute the code, it is much slower. A technique used to improve performance is just-in-time compilation which converts frequently executed sequences of interpreted instruction to host machine code