ВИРТУАЛЬНЫЕ МАШИНЫ И КОМПИЛЯТОРЫ

Это  наши  базовые специализации

java баннер1100x170_3

Мы тестировали платформу Java Virtual Machine  (JVM), разрабатывали программные инструменты, выпустили 14 релизов сертификационной сюиты JCK в многолетнем партнерстве с ее автором, компанией Sun Microsystems. Этот опыт успешно применяется нами  для других проектов по разработке системного ПО.

Мы много лет разрабатываем системное ПО для российской платформы «Эльбрус» и осуществляем техническую поддержку.

Российская реализация платформы Джава для архитектуры "Эльбрус" (Москва, с 2012)

Реализована российская  Джава-машина под архитектуру российских процессоров "Эльбрус". Это полностью отечественная безопасная система, свободная от закладок в “железе” и ПО, а также поддерживающая все встроенные средства безопасности языка программирования Джава. Cейчас идет работа над увеличением производительности виртуальной машины, портируются новые приложения и технологические решения.

Свойства:

  • Реализована на основе виртуальной Джава-машины OpenJDK с открытым исходным кодом
  • Разработано 3 варианта собственного динамического компилятора “на лету” (JIT), оптимизированного под платформу Эльбрус
  • Разработан новый шаблонный интерпретатор
  • Реализована поддержка набора инструкций нескольких поколений процессоров Эльбрус
  • Портированы под архитектуру Эльбрус специализированные библиотеки (OpenGL, OpenCV и др.), ряд широко известных приложений и библиотек с открытым кодом (Apache Tomcat, Apache Derby, Eclipse, Apache Jmetter и др.)

Технологии:
J2SE class libraries (OpenJDK), Java virtual machines, Just-In-Time compilers, interpreters, C, C++, Assembler

Российская реализация платформы JavaScript для архитектуры "Эльбрус" (Москва, с 2016)

Разработка идет по двум направлениям: 1)  виртуальная машина для языка JavaScript V8 от браузера Chrome и платформы Node.js с открытым исходным кодом, уже реализовано 3 версии, с последовательным улучшением качества 2)  виртуальная машина SpiderMonkey из браузера FireFox, реализованы 2 последовательные версии. Разработка включает в себя:

  • Портирование и доработку существующих компиляторов и интерпретаторов
  • Проверку правильности исполнения всех функций
  • Оптимизацию кода, генерируемого компиляторами
  • Увеличение производительности

Технологии: JavaScript, Firefox, C/C++, node.js, Assembler

Реализация платформы С# для архитектуры "Эльбрус" (Москва, с 2016)

Реализация поддержки языка C# на платформе "Эльбрус". За основу взят проект Mono, реализующий совместимый с .NET Framework набор инструментов (компилятор с языка C#, виртуальная машина Common Language Runtime, и др.)

Свойства:

  • Развитие на базе  Mono версии 5.4.1.6
  • Эффективные многоуровневые оптимизации под Эльбрус  для компиляции и исполнения
  • Кодогенерация (быстрая и оптимизированная)
  • Реализация "сборщик мусора", обработки исключений
  • Компиляция JIT и AOT

Технологии: Common Language Runtime (CLR), .NET Framework, Just-In-Time compilers, Ahead-Of-Time compilation, LLVM, C#, C, C++, Assembler

Новая облачная реализация платформы J2SE (Ireland, 2011-2015)

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

Технологии:
J2SE class libraries (Apache Harmony, OpenJDK), Java virtual machines, Just-In-Time compilers, C, C++, Mercurial

Разработка оптимизирующих компиляторов для Fortran 77/90/95/F2K (разные заказчики, 199х-20хх)
  • внешние и внутренние интерфейсы
  • новые и недостающие свойства
  • оптимизация производительности
Разработка тестовых систем и сюит для J2SE API (Sun Microsystems, 199х -20хх)

Тестирование Java стандарта была сделано для широкого набора библиотек:

Core Java packages (java.lang and subpackages)
Basic mathematics API
Java Management Extension API (javax.management)
Sound API (javax.sound)
Printing API (javax.print)
XML processing (DOM, SAX) API
Image I/O API (javax.imageio)
Java utility API (java.util)
Networking API (java.net)
Java I/O API (java.io, java.nio)
Implementation of CJK and other character encodings
Java security API (JAAS, JCE, JSSE)

Проекты по сертификационному тестированию платформы Java описаны здесь.