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




Скачать 327.47 Kb.
НазваниеМатематико-механический факультет Кафедра системного программирования Разработка jre на ecma cli
страница1/8
Дата02.10.2012
Размер327.47 Kb.
ТипДипломная работа
  1   2   3   4   5   6   7   8

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

Математико-механический факультет

Кафедра системного программирования




Разработка JRE на ECMA CLI


Дипломная работа студента 545 группы

Ушакова Дениса Сергеевича


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

/подпись/


Рецензент ……………… И.О. Одинцов

/подпись/


“Допустить к защите”

заведующий кафедрой,

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

/подпись/


Оглавление

1. Введение 3

2. Предыдущий опыт 4

2.1 Реализация сред управляемого исполнения на компилируемых языках 4

2.2 Реализация сред управляемого исполнения на языках управляемого исполнения 6

2.3.1 Java in Java 6

2.3.2 CLI in CLI 8

3. Требования к инструментарию для нужд системного программирования 10

4.Сравнение Java и CLI 13

4.1CLI vs Java 13

4.2 Java vs CLI 14

5. Юридические аспекты переиспользования кода 15

6. Практический опыт реализации 17

6.1 Недостатки имеющейся реализации 17

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

6.3 Результаты прототипирования 19

6.3.1 Вычисления с плавающей точкой 19

6.3.2 Реализация PhantomReference и SoftReference 21

6.3.3 Интеграция OpenJDK и IKVM.NET 22

7. Заключение 23

8. Библиография 24

9. Приложения 28

9.1 Реализация вычислений с плавающей точкой: NaN value 28

9.2 Производительность вычислений с плавающей точкой 28

9.3 Реализация PhantomReference 29

9.4 Оптимизация трансляции инструкций сравнения 30

1. Введение


Виртуальная машина, включая сборщик мусора и JIT компилятор, является наиболее крупным монолитным компонентом среды управляемого исполнения с объёмом исходного кода примерно 105-106 строк, что составляет примерно 20% от всего кода среды исполнения [5].

К
од виртуальной машины подвержен частым изменениям. Большинство приложений в настоящее время разрабатываются на языках управляемого исполнения. Разработчики этих приложений не хотят и не имеют возможности заниматься низкоуровневыми оптимизациями в силу ограничений языков или политик безопасности. Они целиком полагаются на оптимизирующий JIT компилятор и эффективность сборщика мусора, стимулируя тем самым рост числа инноваций в области разработки виртуальных машин (рис. 1) [10]. Каждая инновация – это потенциальное изменение кода виртуальной машины.

Цена ошибки в коде виртуальной машины крайне высока. Виртуальная машина часто является сервисом операционной системы или разделяемым компонентом, таким образом, она может выполнять несколько приложений, в том числе и одновременно [7][17]. Ошибка в виртуальной машине может привести к нарушению работы всех использующих ее приложений.

Тестирование виртуальной машины также затруднено. Исполнение программ недетерминировано, и невозможно протестировать все приложения со всеми ее версиями.

Виртуальная машина является частью системного программного обеспечения и требует доступа к низкоуровневым свойствам аппаратного обеспечения в той же степени, что и операционная система. Это накладывает требования на технологии разработки, принципиально отличающиеся от требований прикладного программирования.

Требуется технология системного программирования, которая позволила бы существенно сократить количество ошибок при изменении кода виртуальной машины.

Время разработки и стоимость владения кодом для языков управляемого исполнения, таких как Java и C#, существенно меньше по сравнению с компилируемыми. Так, разработка и внедрение кода на C/C++ может занимать до 50% больше времени, чем разработка кода на Java [49].

Приведенное наблюдение показывает, что языки управляемого исполнения подходят на роль такой технологии. В данный момент существуют две популярные универсальные среды управляемого исполнения: Java и ECMA CLI, из них ECMA CLI обладает большими возможностями низкоуровневого программирования.

Эти соображения и определили основные цели данной работы:

  1. Сформулировать требования к технологии на основе анализа опыта существующих проектов.

  2. Показать, что ECMA CLI удовлетворяет этим требованиям

  3. Продемонстрировать возможность реализации JRE на ECMA CLI
  1   2   3   4   5   6   7   8

Похожие:

Математико-механический факультет Кафедра системного программирования Разработка jre на ecma cli iconПетербургский Государственный Университет Математико-Механический Факультет Кафедра Системного Программирования
Сравнение различных методов хранения xml в реляционных базах данных и в разных системах
Математико-механический факультет Кафедра системного программирования Разработка jre на ecma cli iconМатематико-механический факультет Кафедра системного программирования Сервис для моделей оптимизации на основе рекуррентных алгоритмов
Метод подстройки пользовательских приоритетов при поиске по коллекциям изображений 28
Математико-механический факультет Кафедра системного программирования Разработка jre на ecma cli iconМатематико-механический факультет Кафедра системного программирования Разработка системы сравнения производительности субд
Существует большое количество разнообразных субд (Система управления базами данных), предназначенных для разных задач, однако обычно...
Математико-механический факультет Кафедра системного программирования Разработка jre на ecma cli iconМатематико-механический факультет Кафедра системного программирования Поддержка структурных изменений в процессах загрузки данных
Исследование необходимости поддержки структурных изменений в источниках данных 35
Математико-механический факультет Кафедра системного программирования Разработка jre на ecma cli iconМатематико-механический факультет Кафедра системного программирования «Мультиагентные платформы и их применение в сетевых задачах»
Мас концентрируют все необходимые для таких технологий свойства с наибольшей выразительностью и полнотой. Результаты внедрения агентных...
Математико-механический факультет Кафедра системного программирования Разработка jre на ecma cli iconМатематико-механический факультет Кафедра системного программирования Генерация веб-сервисов C#. net на основе bpel
Задача кодогенерации веб-сервисов возникла в рамках проекта «К700». «К700» — это проект создания рабочих мест оператора и инженера...
Математико-механический факультет Кафедра системного программирования Разработка jre на ecma cli iconМатематико-механический факультет Кафедра системного программирования Создание режима быстрого прототипирования в case-системе qreal
Использование различных видов диаграмм и сущностей позволяет пользователям наглядно и подробно описать необходимые модули и поведение...
Математико-механический факультет Кафедра системного программирования Разработка jre на ecma cli iconМатематико-механический факультет

Математико-механический факультет Кафедра системного программирования Разработка jre на ecma cli iconМатематико-механический факультет

Математико-механический факультет Кафедра системного программирования Разработка jre на ecma cli iconМатематико-механический факультет

Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница