1 / 12

Конвертор байт-кода java в CIL

Конвертор байт-кода java в CIL. Д. С. Возжаев, 544 группа Научный руководитель: д. т. н. проф. В. О. Сафонов Рецензент: асп. А. Н. Близнюк Санкт-Петербургский Государственный Университет Математико-механический факультет Кафедра системного программирования. Постановка задачи.

kolya
Download Presentation

Конвертор байт-кода java в CIL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Реализация • Конвертирование метаданных • Анализ потока данных • Анализ потока управления • Генерация кода

  5. Caffeine Mark • Решето Эратосфена • Сортировка и генерация последовательностей • Сложные условные переходы • Рекурсивные вызовы методов • Арифметика с плавающей точкой

  6. 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

  7. Результаты и перспективы • Реализовано: • Конвертация метаданных, необходимых для выполнения программы • Конвертация байт-кода Java в СIL • Пути развития: • Конвертирование отладочной информации • Улучшение диагностики ошибок • Java Native Interface

  8. Список литературы • 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/ • Java Native Interface, 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.mspx • IEEE 754, http://standards.ieee.org/catalog/bus.html#754-1985

More Related