Dynamic translation
<architecture> A
virtual machine implementation approach, used to speed up execution of
byte-code programs.
To execute a program unit such as a
method or a
function, the virtual machine compiles its bytecodes into (hardware) machine code.
The translated code is also placed in a cache, so that next time that unit's machine code can be executed immediately, without repeating the translation.
This technique was pioneered by the commercial
Smalltalk implementation currently known as
VisualWorks, in the early 1980s.
Currently it is also used by some implementations of the
Java Virtual Machine under the name
JIT (Just In Time compilation).
[Peter L. Deutsch and Alan Schiffman. "Efficient Implementation of the Smalltalk-80 System", 11th Annual Symposium on Principles of Programming Languages, Jan 1984, pp. 297-302].