SafeTSA
SafeTSA ( Safe T yped S ingle A ssignment) är en statisk enskild tilldelningsform (SSA) mellanrepresentation som kan representera all typsäkerhet för Java- programmeringsspråket och standarden Java Virtual Machine (JVM) byte-kod .
Från och med 2005 använder många optimerande kompilatorer (inklusive just-in-time-kompilatorer som används av JVM) SSA-representationer internt. En typisk just-in-time kompilator för en JVM konverterar JVM stack-maskin byte-kod till en intern statisk-single-assignment representation, utför optimeringar, konverterar SSA-formuläret till en lågnivåform som liknar värd-CPU:s maskinkod, och utför några plattformsspecifika optimeringar innan den slutligen skapar den inbyggda koden som exekveras. SafeTSA är en extern representation som liknar dessa SSA interna representationer, men SafeTSA tillhandahåller fortfarande den fullständiga säkerheten (inklusive säkerhetsverifierbarhet vid klassladdningstid) för standard JVM-byte-kod. I teorin bevarar detta fördelarna med JVM samtidigt som det minskar mängden arbete som JVM behöver göra för att effektivt köra program.
Skaparna av SafeTSA modifierade IBM JikesRVM (kallad Jalapeño JVM vid den tiden) så att den kunde använda standard JVM-byte-kod och även en SafeTSA-bytekod. De körde sedan en standardsvit med Java-riktmärken och publicerade ett dokument som visade att SafeTSA-indata producerade snabbare körande inbyggd kodutmatning från just-in-time-kompilatorn. Dessutom visade forskarna också att SafeTSA krävde mindre tid för att kompilera till inbyggd kod.
Å andra sidan inkluderar fördelarna med en stackmaskin-byte-kod (såsom standard JVM-byte-kod) en lätt implementerad tolk.
De flesta kommersiella JVM:er i slutet av 2005 använder en blandning av byte-kodtolkning och byte-kod just-in-time-optimerad kompilering, medan JikesRVM som används i SafeTSA-forskningen endast använder en blandning av två olika optimeringsnivåer för just-in-time kompilering. Forskningsplattformen använde aldrig tolkning för att köra SafeTSA-byte-kod, så det är mindre tydligt hur SafeTSA-byte-kod skulle fungera i en modifierad version av en kommersiell JVM.
I slutet av 2005 verkar det som om SafeTSA endast har använts inom den akademiska världen.
externa länkar
- A Type-Safe Mobile-Code Representation som syftar till att stödja dynamisk optimering på målplatsen ( 2000) W. Amme, N. Dalton, M. Franz, J. von Ronne
- SafeTSA: A Type Safe and Referentially Secure Mobile-Code Representation Based on Static Single Assignment Form (2001) W. Amme, N. Dalton, J. von Ronne, M. Franz
- Använda SafeTSA-representationen för att öka prestandan hos en existerande Java Virtual Machine ( 2002) W. Amme, J. von Ronne, M. Franz