Разработка 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
Примеры программ Eclipse Europa Scimark 2.0
Вопросы?
Сравнение 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 кода