A program that is compiled during execution time, rather than before execution. Commonly used in tandem with Interpreters.
- The code must be continuously analyzed during execution to identify which segment of the code is to be compiled
- Optimizations can happen on the fly, certain code segments can be saved with Common Subexpression Elimination