Project Babylon
Главная цель Babylon — расширить возможности Java на сторонние модели программирования, такие как SQL, дифференцируемое программирование, модели машинного обучения и GPU. Babylon добьётся этого за счёт улучшения рефлексивного программирования в Java, которое называется Code Reflection (рефлексия кода).
Спонсоры проекта — группы Core Libraries и Compiler.
Аннотация
Возьмём для примера GPU: допустим, Java-разработчик хочет написать ядро GPU на Java и выполнить его на GPU. Java-код разработчика нужно каким-то образом проанализировать и преобразовать в исполняемое ядро GPU. Это могла бы сделать Java-библиотека, но ей нужен доступ к Java-коду в символьной форме. Однако сейчас такой доступ возможен только через нестандартные API или через соглашения, действующие на разных этапах жизненного цикла программы (во время компиляции или во время выполнения), а доступные символьные формы (абстрактные синтаксические деревья или байт-код) часто плохо подходят для анализа и преобразования.
Babylon расширит возможности Java на сторонние модели программирования за счёт улучшения рефлексивного программирования в Java, которое называется Code Reflection. Оно обеспечит стандартный доступ к Java-коду в подходящей форме, а также его анализ и преобразование. После этого поддержку сторонней модели программирования будет проще реализовать в виде Java-библиотеки.
Чтобы убедиться, что Code Reflection подходит для своей задачи, в Babylon будет создана модель программирования GPU для Java, которая использует Code Reflection и реализована в виде Java-библиотеки. Чтобы снизить риск однобокости, мы также изучим другие модели программирования, такие как SQL и дифференцируемое программирование, или поддержим их изучение, хотя, возможно, и не так подробно.
Code Reflection состоит из трёх частей:
-
Представление Java-программ в виде моделей кода, пригодных для доступа, анализа и преобразования.
-
Улучшения рефлексии Java, которые дают доступ к моделям кода во время компиляции и во время выполнения.
-
API для построения, анализа и преобразования моделей кода.
Документы
- Статьи
- Exploiting GPU Tensor Cores from Java using Babylon, май 2026
- Optimizing GPU Programs from Java using Babylon and HAT (январь 2026)
- Code Models (июнь 2024, обновлено в декабре 2025)
- Automatic differentiation of Java code using Code Reflection (февраль 2024)
- Emulating C# LINQ in Java using Code Reflection (февраль 2024)
- Exploring Triton GPU programming for neural networks in Java (февраль 2024)
Сообщество
Репозиторий
Репозиторий проекта находится по адресу github.com/openjdk/babylon.