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

Slides:



Advertisements
Similar presentations
A Programmer's Introduction to Java - from a S/370 user (c) IDMS/SQL News
Advertisements

.NET Framework Overview
Разработка и внедрение объектно-ориентированной библиотеки для автоматизации тестирования Кафедра системного программирования Студент: Олейник А.Л. 544.
Дипломная работа Ивановой О.О., группа 545 Научный руководитель: д. ф.-м. н., профессор Терехов А.Н. Генерация кода по диаграмме активностей.
Расторгуев А.C., 545 группа Научный руководитель: Пименов А.А. Рецензент: ст. преп. Смирнова Е.А.
Алгоритм приближённого join’а на потоках данных Выполнил : Юра Землянский, 445 группа Научный руководитель : Б.А. Новиков СПб, 2011 Санкт-Петербургский.
Разработка архитектуры для генератора синтаксических анализаторов Выполнил: Улитин Константин Научный руководитель: Я.А. Кириленко Курсовая.
Санкт-Петербургский Государственный Университет Математико-механический факультет Кафедра системного программирования Научный руководитель: Б.А. Новиков.
Применение алгоритмов SuperResolution к лицам Выполнил: студент 345 гр., Мокаев Руслан Научный руководитель: Пименов Александр.
Разработка технологии взаимодействия гетерогенных систем с использованием метапрограммирования Константинов Александр, 545 группа Научный руководитель.
Инструмент реинжиниринга спецификаций трансляций Константин Андреевич Улитин Научный руководитель: Я.А. Кириленко Рецензент: Н.М. Тимофеев Санкт-Петербургский.
Санкт - Петербургский Государственный Университет Математико - механический факультет Кафедра системного программирования Система проверки данных на полноту.
Курсовая работа студента 345 группы Чуновкина Фёдора Дмитриевича Научный руководитель: Бондарев А.В. Санкт-Петербургский Государственный Университет Математико-механический.
Санкт-Петербургский Государственный Университет Математико-механический факультет Кафедра системного программирования Научный руководитель: Я.А. Кириленко.
Создание сервиса синхронизации разнородных баз данных Допущена к защите зав. кафедрой: д.ф.м.н., профессор Терехов А.Н. Научный руководитель: доцент Графеева.
Параметризация устройств сетевого управления Казакова А.С. Научный руководитель: Венгерова Е.А. Рецензент: Ушаков К.С. Кафедра системного программирования.
Управление и Конфигурирование Встроенных Систем Ушаков Константин, 545 группа Руководитель: Елена Венгерова.
Адаптивный метод распределения SPMD-заданий в грид Паньшенсков Михаил, 545 группа Научный руководитель: Лукичев А.С. Рецензент: Демьянович Ю.К июня.
1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
Programming Our First Java Program Yingcai Xiao. What to Do Set up for Java Programming Write our first Java Program with IDE Write our first Java Program.
Поиск ошибок в программах на языке Ruby с использованием вывода типов Санкт-Петербург, 2008г. Выполнил: Шпынов Олег, 545 гр. Научный руководитель: Ломов.
Анализ способов использования и причин неиспользования UML на практике Чернятчик Роман 545 группа научный руководитель: к.ф.-м.н., доц. Кознов Д.В. рецензент:
R.GOVINDARAJULU International Institute of Information Technology Hyderabad, India.. ROTOR-BASED CURRICULUM DEVELOPMENT.
History  We first begin with Java which was released in 1995 by Sun Microsystems  Initially Java was 100% interpreted at runtime and was very slow 
Увеличение модульности программного обеспечения на языке Java Курсовая работа студента 345 группы Абишева Тимура Маратовича Научный руководитель: Профессор.
Санкт-Петербургский Государственный Университет Математико-Механический факультет Кафедра системного программирования Применение диаграмм двоичных решений.
Реализация XPath над S-выражениями 2007 Миленин Евгений, гр. 544 Кафедра Системного Программирования Математико-Механический ф-т, СПбГУ Научный руководитель:
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Математико-механический факультет Кафедра системного программирования Автоматизация выбора оптимальной.
Programming A Historic Perspective on Code Reuse Yingcai Xiao.
Моделирование систем хранения с целью уменьшения потребления энергии Научный руководитель: ассистент кафедры информатики Алиев А. А. Рецензент: ст. пр.
Объектно-ориентированное проектирование DSP-систем в телекоммуникациях Подготовил: Сергеев Виктор Николаевич СПбГУ, математико-механический Факультет,
Методы интерактивной визуализации динамики жидких и газообразных сред Костикова Елена Юрьевна, 521 гр. Научный руководитель: Игнатенко Алексей Викторович.
Мультиагентные системы и их применение в сетевых задачах Выполнил: студент 545 гр. Г.И. Вольфсон Научный руководитель: д. ф.-м. н. А.Н.Терехов 2007.
Проверка эквивалентности срединной и линейной осей многоугольника Дипломная работа студента 545 группы Подколзина Максима Валериевича Санкт-Петербургский.
Алгоритм исправления ошибок при анализе в парсерах типа перенос-свертка, основанный на предположении об избыточности языка Дипломная работа студента 545.
Исследование возможностей сервисной шины SonicMQ Дипломная работа студентки 545 группы Комольцевой Дарьи Владимировны Научный руководитель: Графеева Н.Г.
Introduction to the JDK Java for Computational Finance
Sadegh Aliakbary Sharif University of Technology Fall 2011.
Introduction to Java Presented by Daniel Rosenthal Friday, November 16 th, 2007.
BA22001 Introduction to Java Instructor: Jingwu He.
Introduction to Java Programming with JBuilder 4
Sadegh Aliakbary Sharif University of Technology Spring 2011.
Introduction to Java Tavaris J. Thomas Ph.D. BNAI ZION SCIENTISTS DIVISION JOB ORIENTATION & TERMINOLOGY CLASSES Fall 2012.
CSC300 Visual Programming Dr. Craig Reinhart. Objectives Teach the basics of C++ –You won’t be an expert but hopefully a very good novice –GUI development.
1 8/29/05CS360 Windows Programming Professor Shereen Khoja.
© 2008 Dr. Paul Walcott – The University of the West Indies: Cave Hill CampusDr. Paul Walcott COMP6325 Advanced Web Technologies Dr. Paul Walcott The University.
Session 1 - Introduction and Data Access Layer
Microsoft.NET Vs Sun JAVA
Подход к реализации XQuery Паращенко Олег Санкт-Петербургский Государственный Университет Обнинск, 2004.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
C# Overview and Features. Content I.History of C# II.Architecture III.How to install IV.Features V.Code Sample VI.Microsoft.NET Platform VII.Why use C#
Java Introduction Lecture 1. Java Powerful, object-oriented language Free SDK and many resources at
Module Overview n Module Title: OO Programming n Module Code: MIT3446 n Module Value: 3.0 n Duration: 15 weeks n Class-Contact Hours: Lecture15 hrs n Lab/Tutor30hrs.
Java ProgrammingtMyn1 Java Programming Timo Mynttinen Mikkeli University of Applied Sciences.
Java means Coffee Java Coffee Beans The name “JAVA” was taken from a cup of coffee.
Java Programming Presented by Daniel Rosenthal Friday, November 30 th, 2007.
Introduction to Java Programming. Introduction Course Objectives Organization of the Book.
CompSci 6 Programming Design and Analysis January 17, 2006 Prof. Rodger.
Applied Computing Technology Laboratory QuickStart Java Learning to Program in Java Dr. Tom Way October 21, 2005.
JAVA Programming “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
2016 N5 Prelim Revision. HTML Absolute/Relative addressing in HTML.
Introduction Mehdi Einali Advanced Programming in Java 1.
WEKA: A Practical Machine Learning Tool WEKA : A Practical Machine Learning Tool.
Introduction to C# AKEEL AHMED.
Programming in C# CHAPTER 1
Advanced Programming Fall 2017.
Advanced Programming: C# Lecture 01: Introduction
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Presentation transcript:

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

Постановка задачи Входные данные: –Работающая программа на Java, скомпилированная Sun javac или Eclipse Интерфейс командной строки Используется System.Reflection.Emit Выходные данные: –CIL-сборка exe или dll аналогичная входным данным

Обзор существующих решений Microsoft J# jilc.sourceforge.net Remotesoft Java.Net

Реализация Конвертирование метаданных Анализ потока данных Анализ потока управления Генерация кода

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

test>jconv.exe […] -name test -src cmkit/embed -main CaffeineMarkEmbeddedApp test>test.exe Sieve score = (98) Loop score = (2017) Logic score = (0) String score = (708) Float score = (185) Method score = (166650) Overall score = test>java -cp cmkit/embed CaffeineMarkEmbeddedApp Sieve score = (98) Loop score = (2017) Logic score = (0) String score = (708) Float score = (185) Method score = (166650) Overall score = 44637

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

Список литературы –Java VM, –CLI, –jbimp, –Remotesoft Java.Net, –jilc, –IIT-Kanpur, –Microsoft.Net Framework SDK, –Microsoft Visual J++ 6.0, –Microsoft Java, –Tim Lindholm, Frank Yellin, “The JavaTM Virtual Machine Specification, Second Edition”, 1999, Prentice Hall PTR, ISBN: –Microsoft Phoenix, –Unmanaged Metadata API, –James Gosling, Bill Joy, Guy Steele, Gilad Bracha, “The Java(TM) Language Specification”, 2005, Prentice Hall PTR, ISBN: –Ecma-335, –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), –Keith D. Cooper, Timothy J. Harvey, and Ken Kennedy, “A Simple, Fast Dominance Algorithm”, –Eclipse, –Sun Javac, –Никлаус Вирт, «Алгоритмы и структуры данных», 1997, Санкт-Петербург: «Невский Диалект» –Caffeine Mark, –Java Native Interface, –PE and COFF File Format, –IEEE 754,