JIT Compiler:
Taking the best of two worlds - results in interpreting(converting to machine code) machine independent byte code at the cost of dynamic compilation (generates optimized code based on target machine) + caches translated code to minimize performance degradation