Конвертор байт-кода Java в cil

Конвертор байт-кода Java в cil


Скачать 358.24 Kb.
НазваниеКонвертор байт-кода Java в cil
страница1/8
ТипДипломная работа
rykovodstvo.ru > Руководство эксплуатация > Дипломная работа
  1   2   3   4   5   6   7   8


Санкт-Петербургский Государственный Университет

Математико-механический факультет
Кафедра системного программирования


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

Дипломная работа студента 544 группы
Возжаева Дмитрия Сергеевича

Научный руководитель ……………… В. О. Сафонов

д.т.н., профессор / подпись /
Рецензент ……………… А. Н. Близнюк

аспирант / подпись /
“Допустить к защите”
заведующий кафедрой,

д.ф.-м.н., профессор ……………… А.Н. Терехов

/ подпись /

Санкт-Петербург

2007 год.

Оглавление


Оглавление 3

Введение 4

Постановка задачи 4

Существующие решения 4

Архитектура приложения 6

Создание метаданных. 7

Анализ потока данных. 10

Преобразования потока управления. 13

Обработка исключений. 13

Конвертирование инструкций байт-кода 23

Инструкции синхронизации 23

Создание многомерных массивов 23

Инструкции lookupswitch и tableswitch 23

Условные переходы: ifle, iflt, ifge, ifgt 24

Операции сравнения: fcmpl, fcmpg, dcmpl, dcmpg 24

Операция сравнения: lcmp 25

Операции работы со стеком вычислений 25

Создание объектов, инструкция new. 25

Инкремент локальной переменной, iinc 26

Вызов подпрограмм jsr и ret 26

Инструкции Java, имеющие тривиальные эквиваленты в CIL 27

Работа с данными 27

Арифметические операции 28

Изменение двоичного представления числа 28

Условные переходы 29

Тестирование утилиты 30

Тестирование на простых примерах 30

Тестирование при помощи CaffeineMark 30

Заключение 31

Список литературы 32

Введение

Постановка задачи


В данной работе рассматривается задача эффективного конвертирования байт-кода виртуальной машины Java [1] в байт-код Common Intermediate Language (CIL), [2]. Задача включает в себя создание мета-данных CLI (Common Language Infrastructure), эквивалентных исходным метаданным java.


  • Входными данными утилиты являются двоичные файлы в формате поддерживаемом виртуальной машиной Java.

  • Предполагается, что все загружаемые java-классы успешно проходят верификацию, отдельной проверки корректности входных данных не производится.

  • На выходе утилита выдает простую CLI-сборку, функционально эквивалентную исходной программе, содержащую метаданные и инструкции CIL.

  • Тип сборки - исполняемая сборка, или библиотека классов задается в качестве входного параметра.

Некоторые классы, используемые исходной программой, могут быть загружены не из java-файлов, а из уже существующих сборок CLI.

Существующие решения


Известно три проекта, решающих аналогичную задачу: Microsoft jbimp [3], Remotesoft Java.Net [4] и jilc [5], разрабатываемой группой студентов из IIT-Kanpur [6], (Indian Institute of Technology)
Jbimp

Утилита jbimp поставляется в составе Microsoft .Net Framework SDK [7] и является утилитой пакетного конвертирования двоичных классов java в сборки Microsoft .Net. В основном эта утилита ориентирована на перенос программ, написанных на Microsoft Visual J++ 6.0 [8], для виртуальной машины Microsoft Java [9]. В связи с этим, недостатками данной утилиты можно назвать:

  • отсутствие поддержки современных версий Java: jbimp работает с давно устаревшей версией JDK – 1.1.4, вышедшей в 1997 году;

  • неэффективность генерируемого кода: конвертированная программа работает медленней, чем исходная;

  • невозможность конвертировать методы, имеющие нетривиальную, но допустимую структуру графа потока управления.


Java.Net

Про утилиту Remotesoft Java.Net можно сказать, что единственная страница в интернете, ее описывающая, содержит внушительный список возможностей и преимуществ. Представлены два примера и один снимок экрана. Не смотря на то, что на сайте компании представлено еще несколько утилит для разработчиков, для которых указаны условия лицензирования, стоимость и предлагаются для загрузки бесплатные пробные версии. Возможность скачать пробную версию, купить программу, или даже предложение связаться с представителем для получения более подробной информации о Java.Net, на сайте отсутствуют. На запрос, отправленный по электронной почте, ответа так и не поступило. Таким образом, реальные возможности, преимущества и недостатки данной утилиты остались неизвестными.
JILC

Проект jilc.sourceforge.net – попытка группы студентов Индийского Института Технологий разработать утилиту, решающую аналогичную задачу. Но проект остановился на одном из ранних этапов в связи с тем, что его участники перешли на другие задачи и больше не развивается. К настоящему времени доступен парсер исходных классов на java и генератор IL, который, по словам авторов, работает не корректно.

  1   2   3   4   5   6   7   8

Похожие:

Конвертор байт-кода Java в cil iconТребования к исходному коду программ на языке java
Данный документ является корпоративным стандартом предприятия, определяющим требования к разработке исходного Java-кода. Документ...

Конвертор байт-кода Java в cil iconПрограмма простого tcp/ip клиента (SampleClient java) 4
Так же рассказывается о том, как пишутся и используются программные модули, ориентированные на построение www и научить работе с...

Конвертор байт-кода Java в cil iconРуководство пользователя Книга №1 Общие принципы работы в Системе
«Юридическое лицо» в процессе выполнения Java-апплета будет отображен логотип Java. 9

Конвертор байт-кода Java в cil iconCейфа с кодовым механическим замком серии 47
На вашем сейфе установлен механический кодовый замок с возможностью многократной смены кода. Возможное количество комбинации 1 440...

Конвертор байт-кода Java в cil iconИнструкция по настройке Java для портала суфд (на примере Java 8 update 131)
Переходим на вкладку Advanced и выставляем переключатели так как показано на картинке

Конвертор байт-кода Java в cil iconПрограмма государственного экзамена по направлению
Основы программирование на Java. Ключевые особенности. Файловая структура Java. Области видимости имен. Операции наследования и перекрытие...

Конвертор байт-кода Java в cil iconПрограмма государственного экзамена по направлению 02. 04. 01 «Математика и компьютерные науки»
Основы программирование на Java. Ключевые особенности. Файловая структура Java. Области видимости имен. Операции наследования и перекрытие...

Конвертор байт-кода Java в cil iconКлиент-серверные технологии
П. Ноутон, Г. Шилдт java 2 [Электронный ресурс] Book Ноутон Шилдт java 2 Наиболее полное руководство pdf

Конвертор байт-кода Java в cil iconПрограмма «Основы программирования на java»
Изучая основы программирования на языке Java, ребята учатся создавать реально действующие кроссплатформенные программы, которые могут...

Конвертор байт-кода Java в cil iconЗадачи из Java-фреймворков mipt (Math, gui) для выполнения в рамках...
Получить/закрепить навыки эффективного использования чужого программного кода при написании программ в области вычислений или визуализации...

Конвертор байт-кода Java в cil iconРуководство администратора
Системной платформой Javaee серверов приложений необходимо установить Java jre версии X. Для установки Java jre необходимо запустить...

Конвертор байт-кода Java в cil iconИнструкция по настройке «Сервера сканера штрих-кода»
Предварительно в системе должен быть установлен драйвер сканера штрих кода от фирмы «Атол» версия 2

Конвертор байт-кода Java в cil iconПрограмма дисциплины «Программирование на языке java»
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направлений подготовки 231000....

Конвертор байт-кода Java в cil iconФлай Байт, ведро 2 кг
Наличие горького компонента битрекса (0,01 %) защищает ее от поедания птицами и домашними животными. Приманку упаковывают в ведра...

Конвертор байт-кода Java в cil iconЯзыки программирования java и java-технологии
Целью изучения дисциплины является получение теоретических и практических знаний Перечень дисциплин, усвоение которых необходимо...

Конвертор байт-кода Java в cil iconПравила именования идентификаторов Общие правила именования идентификаторов
Документ является соглашением по оформлению и написанию кода на языке C#. В документе приведены основные правила оформления кода...


Руководство, инструкция по применению




При копировании материала укажите ссылку © 2018
контакты
rykovodstvo.ru
Поиск