Петербургский Государственный Университет Математико-механический факультет Кафедра системного программирования Конвертор байт-кода Java в cil диплом
Вид материала | Диплом |
- Санкт-Петербургский государственный университет Математико-механический факультет Кафедра, 441.47kb.
- Петербургский Государственный Университет Математико-механический факультет Кафедра, 390.77kb.
- Петербургский Государственный Университет Математико-Механический Факультет Кафедра, 596.99kb.
- Петербургский Государственный Университет Математико-механический факультет Кафедра, 415.59kb.
- Петербургский Государственный Университет Математико-механический факультет Кафедра, 392.11kb.
- Санкт-Петербургский государственный университет Математико-механический факультет, 254.27kb.
- Санкт-Петербургский государственный университет Математико-механический факультет, 268.74kb.
- Санкт-Петербургский государственный университет Математико-механический факультет, 180.54kb.
- Министерство образования Российской Федерации санкт-петербургский государственный университет, 14.99kb.
- Санкт-Петербургский государственный университет Математико-механический факультет, 336.15kb.
Инструкции Java, имеющие тривиальные эквиваленты в CILРабота с данными
Арифметические операции
Изменение двоичного представления числа
Условные переходы
Тестирование утилитыТестирование на простых примерахДля проверки корректности работы утилиты был создан набор небольших тестов на различные функции утилиты. Тестовые примеры были сделаны в виде небольших приложений, каждое из которых проверяло определенный аспект работы утилиты. При этом корректность конвертированного кода проверялась как при помощи верификатора байт-кода в реализации Microsoft .Net, т.е. созданные приложения запускались и их вывод сравнивался с эталонным. Часто приложения вообще не могли запуститься, так как их код не был корректным, и среда исполнения CIL отказывалась их выполнять. Так же результаты конвертирования просматривались вручную при помощи CIL-дизассемблера. Проверялись следующие аспекты работы конвертора:
Тестовые приложения компилировались как компилятором eclipse, так и стандартным компилятором javac. Эти тесты помогли выявить значительное количество ошибок в исходном коде утилиты. Тестирование при помощи CaffeineMarkCaffeineMark Benchmark [21] – набор тестов производительности виртуальной машины java. В этот набор входят тесты на скорость вызова методов, создание объектов, математические операции, работа с большим количеством данных, скорость выполнения большого количества условных ветвлений и подобные. В результате проверки утилиты этим набором тестов выявилась ошибка в реализации алгоритма анализа потока данных, приводившая к экспоненциальному росту требуемой памяти. Основной целью этой проверки было выяснить, действительно ли, реализованная компанией Microsoft CLI превосходит по производительности современные виртуальные машины Java. Оказалось, что получившееся после конвертирования приложение работает в среде Microsoft .Net 2.0 на 50% быстрее, чем исходный тест, работавший в машине Java HotSpot Client VM 1.6.0. ЗаключениеВ результате работы над проектом поставленные цели были достигнуты и получены следующие результаты:
Направлениями дальнейшего развития данной утилиты могут быть:
Список литературы
Дмитрий, я оставил мой отзыв (с предварительной оценкой – ОТЛИЧНО), оригинал, с моей подписью, секретарю нашей кафедры информатики ХАЛИЛУЛИНОЙ ТАТЬЯНЕ АНАТОЛЬЕВНЕ, так как она сказала, что именно она будет у вас секретарем на защитах дипломов кафедры СП 19 июня (в день Вашей защиты). Теперь Ваша задача – убедиться в том, что мой отзыв точно будет на Вашей защите. На всякий случай даю все координаты Т.А.Халилулиной: - кафедра информатики, комн. 3391, тел. 428-42-33 - домашний телефон: 730-91-19 (она живет в Сосновой Поляне). ![]() ОТЗЫВ на дипломную работу Д.С. Возжаева (544 гр.) “Конвертор из Java байт-кода в MS IL” Актуальность данной темы и практическая ценность выполненной работы в том, что ее результаты могут быть использованы для переноса приложений с платформы Java на платформу .NET. Первоначально перед автором была поставлена задача разработки конвертора (двоичного компилятора) из Java байт-кода в MS IL на базе Microsoft Phoenix. По терминологии Phoenix, подобная система могла быть названа “Java bytecode reader” и могла бы войти в состав других многочисленных модулей (plug-ins), дополняющих Phoenix и входящих в его состав: PE Reader, CIL reader и т.д. Однако в процессе выполнения работы автор установил, что Phoenix не полностью подходит для этой цели, так как не в полной мере обеспечивает генерацию метаданных. Этот факт также можно причислить к важным исследовательским результатам работы (хотя и “негативным”). При выполнении работы автор продемонстрировал высокий уровень знаний и опыт в области создания компиляторов. Дипломная записка написана неплохим языком и, в основном, оформлена в соответствии с требованиями кафедры. На данный момент ее объем (в первую очередь, описание реализации системы) недостаточен. Дипломная записка имеет и ряд других недостатков, полный список которых передан автору. Все недостатки устранены в итоговой версии диплома. Рекомендую автору доработку и развитие своей системы, с целью обеспечить возможность переноса на платформу .NET всех основных разновидностей Java-приложений. Тем не менее, несмотря на отмеченные недостатки и учитывая большой объем проделанной работы, высокий уровень разработки и практическую полезность системы, считаю, что работа заслуживает оценки ОТЛИЧНО. Научный руководитель, проф. В.О. Сафонов 04.06.07 Более подробно это рассмотрено в работе [14] |