Download presentation
Presentation is loading. Please wait.
1
Конвертор байт-кода java в CIL Д. С. Возжаев, 544 группа Научный руководитель: д. т. н. проф. В. О. Сафонов Рецензент: асп. А. Н. Близнюк Санкт-Петербургский Государственный Университет Математико-механический факультет Кафедра системного программирования
2
Постановка задачи Входные данные: –Работающая программа на Java, скомпилированная Sun javac или Eclipse Интерфейс командной строки Используется System.Reflection.Emit Выходные данные: –CIL-сборка exe или dll аналогичная входным данным
3
Обзор существующих решений Microsoft J# jilc.sourceforge.net Remotesoft Java.Net
4
Реализация Конвертирование метаданных Анализ потока данных Анализ потока управления Генерация кода
9
Caffeine Mark Решето Эратосфена Сортировка и генерация последовательностей Сложные условные переходы Рекурсивные вызовы методов Арифметика с плавающей точкой
10
test>jconv.exe […] -name test -src cmkit/embed -main CaffeineMarkEmbeddedApp test>test.exe Sieve score = 35699 (98) Loop score = 147664 (2017) Logic score = 112910 (0) String score = 33793 (708) Float score = 51015 (185) Method score = 48378 (166650) Overall score = 60623 test>java -cp cmkit/embed CaffeineMarkEmbeddedApp Sieve score = 16959 (98) Loop score = 118335 (2017) Logic score = 65942 (0) String score = 31140 (708) Float score = 47125 (185) Method score = 40733 (166650) Overall score = 44637
11
Результаты и перспективы Реализовано: –Конвертация метаданных, необходимых для выполнения программы –Конвертация байт-кода Java в СIL Пути развития: –Конвертирование отладочной информации –Улучшение диагностики ошибок –Java Native Interface
12
Список литературы –Java VM, http://java.sun.com/ –CLI, http://msdn2.microsoft.com/en-us/netframework/aa569283.aspx –jbimp, http://msdn2.microsoft.com/en-us/library/y9teabc2(VS.80).aspx –Remotesoft Java.Net, http://www.remotesoft.com/javanet/ –jilc, http://jilc.sourceforge.net –IIT-Kanpur, http://www.iitk.ac.in/ –Microsoft.Net Framework SDK, http://msdn.microsoft.com/netframework/ –Microsoft Visual J++ 6.0, http://msdn2.microsoft.com/en-us/vjsharp/bb188636.aspx –Microsoft Java, http://www.microsoft.com/mscorp/java/ –Tim Lindholm, Frank Yellin, “The JavaTM Virtual Machine Specification, Second Edition”, 1999, Prentice Hall PTR, ISBN: 978- 0201432947 –Microsoft Phoenix, http://research.microsoft.com/phoenix/ –Unmanaged Metadata API, http://msdn2.microsoft.com/en-us/library/ms404384.aspx –James Gosling, Bill Joy, Guy Steele, Gilad Bracha, “The Java(TM) Language Specification”, 2005, Prentice Hall PTR, ISBN: 978-0321246783 –Ecma-335, http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-335.pdf –Dominator, http://en.wikipedia.org/wiki/Dominator –T. Lengauer and R. E. Tarjan, “A fast algorithm for finding dominators in a flow graph”, Transactions on Programming Languages and Systems 1 (1979), 121-141. –Keith D. Cooper, Timothy J. Harvey, and Ken Kennedy, “A Simple, Fast Dominance Algorithm”, http://www.hipersoft.rice.edu/grads/publications/dom14.pdf –Eclipse, http://www.eclipse.org –Sun Javac, http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javac.html –Никлаус Вирт, «Алгоритмы и структуры данных», 1997, Санкт-Петербург: «Невский Диалект» –Caffeine Mark, http://www.benchmarkhq.ru/cm30/http://www.benchmarkhq.ru/cm30/ –Java Native Interface, http://java.sun.com/j2se/1.4.2/docs/guide/jni/http://java.sun.com/j2se/1.4.2/docs/guide/jni/ –PE and COFF File Format, http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspxhttp://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx –IEEE 754, http://standards.ieee.org/catalog/bus.html#754-1985
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.