Interpretation allows the execution of the same code on any computer architecture, but the execution time of this code is slower than if it were executed directly on a computer processor. Just-in-time compilers try to speed up the execution time of an interpretation by translating frequently executed parts of code into machine code during execution time. The translated parts of the code are executed directly on the processor from the translation onwards, without interpretation. The main goal of this diploma thesis was to create a JIT compiler for a virtual machine of the SIC assembly language. We achieved this by implementing the detection of frequently executed code and translating SIC instructions into x86 architecture instructions, which are executed outside the virtual machine.
|