130 likes | 338 Views
Санкт – Петербургский Государственный Университет Математико – механический факультет. Разработка JRE на ECMA CLI. Ушаков Денис Сергеевич Кафедра системного программирования, группа 545 Научный руководитель: Салищев Сергей Игоревич Рецензент: Одинцов Игорь Олегович. 2008.
E N D
Санкт – Петербургский Государственный Университет Математико – механический факультет Разработка JRE на ECMA CLI Ушаков Денис Сергеевич Кафедра системного программирования, группа 545 Научный руководитель: Салищев Сергей Игоревич Рецензент: Одинцов Игорь Олегович 2008
Актуальность проблемы: почему Managed in Managed • Виртуальная машина — наиболее крупный компонент среды исполнения • Высокая стоимость ошибки • Высокая изменчивость кода виртуальной машины • Требуются прогрессивные методы разработки, уменьшающие количество ошибок • Время разработки и стоимость владения кода для управляемых языков существенно меньше по сравнению с компилируемыми
Актуальность проблемы: почему Java in ECMA CLI • Две успешные платформы управляемого исполнения общего прикладного назначения • Унификация платформ на базе одной из них уменьшает стоимость владения кода и увеличивает скорость проникновения инноваций • Платформа ECMA CLI является более предпочтительной для системного программирования
Постановка задачи • Сформулировать требования к технологии для системного программирования • Провести сравнительный анализ JVM Specification и ECMA CLI • Разработать прототип JRE (на базе IKVM.NET и OpenJDK classlibraries)
Управляемый код JNI Небезопасный код Компилируемый код Ассемблер целевой машины Результаты: Требования к технологии • Иерархический доступ к низкоуровневым средствам • Контроль типов на всех уровнях
Результаты: Требования к технологии • Полная поддержка типов C • Сквозная оптимизация, в том числе низкоуровневых вставок • Типизированная аллокация на стеке
Результаты:Несовместимости спецификаций • Наличие в Java SoftReference и PhantomReference • Различия реализации вычислений с плавающей точкой • Недетерминированная точность вычислений в ECMA CLI • Строгий режим вычислений в Java • Денормализация • NaN
Результаты: Прототип • Интегрированы IKVM.NET и OpenJDK classlibraries • Устранены несовместимости спецификаций Java и ECMA CLI: • Реализованы SoftReference и PhantomReference • Реализована модель вычислений с плавающей точкой Java
Примеры программ Scimark 2.0 Eclipse Europa
Сравнение Managed in Managed • Java in Java • Jikes RVM • Moxie • JNode • Joeq • CLI in CLI • Singularity • Other • Squeak • Standard ML of New Jersey (STML/NJ)
Hotspot JDK 1.0 Инновации в области виртуальных машин
Преимущества ECMA CLI • Полная поддержка типов C • unsafeкод • Типизированная аллокация на стеке • Сквозной контроль типов • Сквозная оптимизация unsafeкода