SafeTSA
   HOME

TheInfoList



OR:

SafeTSA (Safe Typed Single Assignment) is a
static single assignment form In compiler design, static single assignment form (often abbreviated as SSA form or simply SSA) is a property of an intermediate representation (IR) that requires each variable to be assigned exactly once and defined before it is used. Existing var ...
(SSA) intermediate representation capable of representing all of the type safety of the
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
programming language and the standard Java Virtual Machine (JVM)
byte-code Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (normall ...
. 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, 2005, alt=As of late 2005, it seems that SafeTSA has only been used in academia.


External links


A Type-Safe Mobile-Code Representation Aimed at Supporting Dynamic Optimization At The Target Site
(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
Using the SafeTSA Representation to Boost the Performance of an Existing Java Virtual Machine
(2002) W. Amme, J. von Ronne, M. Franz Java platform