SafeTSA - SafeTSA

SafeTSA это статическая форма единого назначения (SSA) промежуточное представление, способное представить всю безопасность типа Ява язык программирования и стандартная виртуальная машина Java (JVM) байт-код.

Начиная с 2005 года, многие оптимизирующие компиляторы (включая JVM-компиляторы, используемые JVM) используют представления SSA внутри. Типичный JVM-компилятор преобразует байт-код стековой машины JVM во внутренний статический одиночный. представление назначения, выполняет оптимизацию, преобразует форму SSA в низкоуровневую форму, аналогичную машинному коду центрального процессора, и выполняет некоторые оптимизации для конкретной платформы, прежде чем, наконец, создать собственный код, который запускается. SafeTSA - внешнее представление, подобное этим SSA внутренние представления, но SafeTSA по-прежнему обеспечивает полную безопасность типов (включая возможность проверки безопасности во время загрузки класса) стандартного байт-кода JVM. Теоретически это сохраняет преимущества JVM, одновременно уменьшая объем работы, которую JVM должна выполнять, чтобы для эффективного выполнения программ.

Создатели SafeTSA модифицировали IBM JikesRVM (в то время называемую Jalapeño JVM), чтобы он мог использовать стандартный байт-код JVM, а также байт-код SafeTSA. Затем они запустили стандартный набор тестов Java и опубликовали документ, показывающий, что вход SafeTSA производил более быстрый вывод нативного кода из своевременного компилятора. Кроме того, исследователи также показали, что SafeTSA требуется меньше времени для компиляции в нативный код.

С другой стороны, преимущества байт-кода стековой машины (такого как стандартный байт-код JVM) включают в себя легко реализуемый интерпретатор.

Большинство коммерческих JVM в конце 2005 года используют смесь интерпретации байтового кода и своевременной оптимизированной компиляции, тогда как JikesRVM, использованный в исследовании SafeTSA, использует только смесь двух различных уровней оптимизации для своевременной компиляции. Исследовательская платформа никогда не использовала интерпретацию для запуска байт-кода SafeTSA, поэтому менее ясно, как байт-код SafeTSA будет работать в модифицированной версии коммерческой JVM.

По состоянию на конец 2005 г.Кажется, что SafeTSA использовался только в академических кругах.

внешняя ссылка