See JustInTimeCompilation.

A Just In Time (JIT) Compiler converts ByteCode to executable machine instructions on the fly. As a consequence, it differs in subtle ways from a traditional compiler. First off, since many problems (example, RegisterAllocation) are computationally complex, a JIT Compiler uses fast heuristics instead of well established, but slower, algorithms. This may result in sub-optimal results. However, as a benefit, JIT Compilers have access to the code as it is running, and as such may dynamically determine code segments to be optimized to a greater degree.

Examples of JIT Compilers include:
* Sun Microsystems HotSpot JVM, 
* IBM's Jikes RVM (ResearchVirtualMachine), 
* Microsoft's .Net JIT (name unknown), and 
* The Mono project's .Net JIT.
* SpiderMonkey's tracing JIT (https://developer.mozilla.org/en/SpiderMonkey/Internals/Tracing_JIT)
* LuaLanguage's LuaJIT (http://luajit.org)

----
CategoryTime CategoryCompilers