Introduction to OOP: Chapter 21 : Implementation
Two General Approaches to Implementation
Compilers - translated into basic machine code, source code
not available at run-time, generally very efficient.
Interpreters - translated into intermediate representation, source
code available for reference at run-time, generally somewhat less efficient.
Endpoints are clear, but there are lots of gray areas in the middle.
Java JIT systems are one of those gray areas between compilers and interpreters