The Wikipedia page about interpreters mentions the following three strategies
- Parse the source code and perform its behavior directly
- Translate source code into some efficient intermediate representation or object code and immediately execute that
- Explicitly execute stored precompiled bytecode made by a compiler and matched with the interpreter Virtual Machine.
Isn't byte-code intermediate representation? What is the difference between 2 and 3? The use of VM?