Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
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 ғалымдар тарапынан ғана қолданылған сияқты.
SafeTSA (Safe Typed Single Assignment) is a static single assignment form (SSA) intermediate representation capable of representing all of the type safety of the Java programming language and the standard Java Virtual Machine (JVM) byte code. As of 2005, many optimizing compilers (including just in time compilers used by JVMs) use SSA representations internally. A typical just in time compiler for a JVM converts JVM stack machine byte code into an internal static single assignment representation, performs optimizations, converts the SSA form to a low level form similar to the host CPU's machine code, and performs some platform specific optimizations before finally creating the native code that gets executed. SafeTSA is an external representation similar to these SSA internal representations, yet SafeTSA still provides the full type safety (including security verifiability at class load time) of standard JVM byte code. In theory, this preserves the advantages of the JVM while decreasing the amount of work the JVM needs to do in order to efficiently execute programs. The creators of SafeTSA modified the IBM JikesRVM (called the Jalapeño JVM at the time) so that it could use standard JVM byte code and also a SafeTSA bytecode. They then ran a standard suite of Java benchmarks and published a paper showing that SafeTSA input produced faster running native code output from the just in time compiler. In addition, the researchers also showed that SafeTSA required less time to compile to native code. On the other hand, the advantages of a stack machine byte code (such as the standard JVM byte code) include an easily implemented interpreter. Most commercial JVMs in late 2005 use a mixture of byte code interpretation and byte code just in time optimized compilation whereas the JikesRVM used in the SafeTSA research uses only a mixture of two different optimization levels for just in time compilation. The research platform never used interpretation to run SafeTSA byte code, so it's less clear how SafeTSA byte code would perform in a modified version of a commercial JVM. As of late 2005, it seems that SafeTSA has only been used in academia.