För domänspecifika språk, "skriptspråk", dynamiska språk och för virtuella maskinbaserade språk är den enklaste genomförandestrategin att skriva en tolk. En enkel tolk består av en slinga som hämtar nästa bytekod, skickar till rutinhanteringen som bytekod, sedan slingor. Det finns många sätt att förbättra denna enkla mekanism, men så länge genomförandet av programmet drivs av en representation av programmet annat än som en ström av inhemska instruktioner, kommer det att finnas några "tolkande overhead". Det finns en lång historia av tillvägagångssätt för att ta bort tolkande overhead från programmering språkimplementeringar. I praktiken, vad som ofta händer är att när ett tolkat språk blir populärt, tryck byggs för att förbättra prestanda tills så småningom ett projekt genomförs för att genomföra en infödd Just In Time (JIT) kompilator för språket. Genomförandet av en JIT är vanligtvis en stor insats, påverkar en betydande del av det befintliga språkgenomförandet, och lägger till en betydande mängd kod och komplexitet till den övergripande kodbasen. I detta dokument presenterar vi ett innovativt tillvägagångssätt som dynamiskt tar bort en stor del av de tolkade omkostnaderna från språkimplementeringar, med minimal instrumentering av den ursprungliga tolken. Även om det inte ger prestandaförbättringar av handgjorda inhemska kompilatorer, vårt system ger en tilltalande punkt på språk implementering spektrum.
Till exempel använder DynamoRIO REF ] en kombination av en infödd Just-In-Time kompilator och partiell utvärderingstekniker.
Dynamic native optimization of interpreters
{'venue': "IVME '03", 'journal': None, 'mag_field_of_study': ['Computer Science']}