Articulo de referencia

SafeTSA

SafeTSA ( Safe Typed Single A ssignment ) es una representación intermedia estática de forma de asignación única (SSA) capaz de representar toda la seguridad de tipos del lengua...

SafeTSA ( Safe Typed Single A ssignment ) es una representación intermedia estática de forma de asignación única (SSA) capaz de representar toda la seguridad de tipos del lenguaje de programación Java y el código de bytes estándar de la máquina virtual Java (JVM) .

Desde 2005, muchos compiladores optimizadores (incluidos los compiladores justo a tiempo utilizados por las JVM) emplean representaciones SSA internamente. Un compilador justo a tiempo típico para una JVM convierte el código de bytes de la pila de la JVM en una representación interna de asignación única estática (SSA), realiza optimizaciones, convierte la forma SSA a una forma de bajo nivel similar al código máquina de la CPU del host y realiza algunas optimizaciones específicas de la plataforma antes de generar finalmente el código nativo que se ejecuta. SafeTSA es una representación externa similar a estas representaciones internas SSA, pero SafeTSA proporciona la seguridad de tipos completa (incluida la verificabilidad de seguridad en el momento de la carga de clases) del código de bytes estándar de la JVM. En teoría, esto conserva las ventajas de la JVM al tiempo que reduce la cantidad de trabajo que necesita realizar para ejecutar programas de manera eficiente.

Los creadores de SafeTSA modificaron la IBM JikesRVM (conocida entonces como Jalapeño JVM) para que pudiera usar tanto el código de bytes estándar de la JVM como el código de bytes de SafeTSA. Posteriormente, ejecutaron un conjunto estándar de pruebas de rendimiento de Java y publicaron un artículo que demostraba que la entrada de SafeTSA generaba una salida de código nativo más rápida por parte del compilador justo a tiempo. Además, los investigadores también demostraron que SafeTSA requería menos tiempo para compilarse a código nativo.

Por otro lado, entre las ventajas de un código de bytes de máquina de pila (como el código de bytes estándar de la JVM) se incluye un intérprete de fácil implementación.

La mayoría de las JVM comerciales a finales de 2005 utilizaban una combinación de interpretación de código de bytes y compilación optimizada justo a tiempo (JIT), mientras que la JikesRVM utilizada en la investigación de SafeTSA empleaba únicamente una combinación de dos niveles de optimización diferentes para la compilación JIT . La plataforma de investigación nunca utilizó la interpretación para ejecutar el código de bytes de SafeTSA, por lo que no está claro cómo se comportaría dicho código en una versión modificada de una JVM comercial.

A finales de 2005Parece que SafeTSA solo se ha utilizado en el ámbito académico.

  • Una representación de código móvil con tipado seguro destinada a soportar la optimización dinámica en el sitio de destino (2000) W. Amme, N. Dalton, M. Franz, J. von Ronne
  • SafeTSA: Una representación de código móvil segura en cuanto a tipos y referencialmente segura basada en la forma de asignación única estática (2001) W. Amme, N. Dalton, J. von Ronne, M. Franz
  • Uso de la representación SafeTSA para mejorar el rendimiento de una máquina virtual Java existente (2002) W. Amme, J. von Ronne, M. Franz
Obtenido de " https://en.wikipedia.org/w/index.php?title=SafeTSA&oldid=1356814434 "