Кіріспе

SafeTSA (Safe Typed Single Assignment) – Java бағдарламалау тілінің барлық типтік қауіпсіздігін және стандартты Java виртуалды машинасының (JVM) байт-кодын бейнелеуге қабілетті статикалық бір тапсырма формасының (SSA) аралық өрнегі. 2005 жылдан бастап көптеген оптимизациялық компиляторлар (соның ішінде JVM-дерде қолданылатын уақытында компиляторлар) SSA-ны ішкі түрде пайдаланады. Типтік JVM үшін уақытында компилятор JVM стек машинасының байт-кодын ішкі статикалық бір тапсырмалық өрнекке түрлендіреді, оптимизация жасайды, SSA нысанын хост-процессордың машиналық кодына ұқсас төменгі деңгейдегі формаға түрлендіреді және содан кейін орындалатын туынды кодты жасаудан бұрын платформаға қатысты оптимизация жасайды. SafeTSA – бұл SSA-ның ішкі өрнектеріне ұқсас сыртқы өрнек, бірақ SafeTSA стандартты JVM байт-кодының толық типтік қауіпсіздігін (класс жүктелер кезде қауіпсіздікті тексеруді қоса алғанда) сақтайды. Теориялық тұрғыдан алғанда, бұл JVM-нің артықшылықтарын сақтай отырып, бағдарламаларды тиімді орындау үшін JVM-нің атқару қажетті жұмысының көлемін азайтады. SafeTSA-ны жасаушылар IBM JikesRVM-ді (сол кезде Jalapeño JVM деп аталған) стандартты JVM байт-кодын және SafeTSA байт-кодын қолдана алуы үшін өзгертті. Олар стандартты Java тесттерінен өтті және уақытында компилятордан алынған туынды кодты SafeTSA кірісінің жылдамдатып орындауын көрсететін мақала жариялады. Сонымен қатар, зерттеушілер SafeTSA-ны туынды кодқа компиляциялау үшін аз уақыт қажет екенін көрсетті. Екінші жағынан, стек машинасының байт-кодының артықшылықтары (мысалы, стандартты JVM байт-коды) оңай іске асырылатын интерпретаторды қамтиды. 2005 жылдың соңында көптеген коммерциялық JVM-дер байт-кодты интерпретациялау және уақытында оптимизацияланған компиляцияның араласуын пайдаланды, ал SafeTSA зерттеуінде қолданылған JikesRVM уақытында компиляция үшін екі түрлі оптимизация деңгейінің араласуын ғана пайдаланды. Зерттеу платформасы SafeTSA байт-кодын орындау үшін интерпретацияны пайдаланған емес, сондықтан SafeTSA байт-коды коммерциялық JVM-нің өңделген нұсқасында қалай жұмыс істейтіні әлі толық анық емес. 2005 жылдың соңына қарай SafeTSA ғалымдар тарапынан ғана қолданылған сияқты.