Setul de instrumente Jitter a intrat oficial sub aripa Proiectului GNU și va fi acum dezvoltat sub numele GNU Jitter folosind infrastructura GNU și în conformitate cu cerințele acestui proiect. Jitter vă permite să generați mașini virtuale portabile și foarte rapide pentru proiecte de limbaje de programare arbitrare, a căror performanță de execuție a codului este semnificativ mai rapidă decât interpreții și este aproape de codul compilat nativ. Codul sursă Jitte este scris în C și este licențiat sub licență GPLv3.
Jitter ia ca intrare o specificație de nivel înalt a instrucțiunilor suportate de mașina virtuală, iar ca ieșire generează o implementare gata făcută a mașinii virtuale pentru a executa instrucțiunile date. Logica fiecărei instrucțiuni din specificație este specificată folosind codul C (vezi exemplul de specificație a unei mașini virtuale pentru limbajul Lisp). Caracteristicile suplimentare includ suport pentru operațiuni de ramificare condiționată care sunt dificil de implementat în limbajul C și tipice pentru limbaje de programare dinamică, cum ar fi verificarea valorilor etichetelor și verificarea depășirilor.
Rezultat mașină virtuală Mașina virtuală este scrisă în C cu un număr mic de linii de asamblare. Sunt furnizate setări pentru activarea diverselor optimizări și selectarea mecanismelor de dispecerizare, simplificând portarea mașinii virtuale pe diferite platforme. Sunt acceptate arhitecturi de execuție de tip registre, stivă și combinate, precum și capacitatea de a mapa structurile de date ale mașinilor virtuale la registrele hardware ale CPU și de a activa colectoarele de gunoi. Codul generat include o API C simplă pentru substituția dinamică a codului și execuția în mașina virtuală, precum și un program driver pentru rularea codului din fișiere text separat în mașina virtuală.
Sursa: opennet.ru
