Una propuesta de OpenJDK llamada Proyecto Babylon planea extender Java a modelos de programación extranjeros, como modelos de aprendizaje automático, GPU, SQL y programación diferencial. Publicado el 6 de septiembre en una lista de correo de openjdk.org por el arquitecto deOráculo Paul Sandoz, esta iniciativa propone, para conseguirlo, mejorar la programación reflexiva en Java, conocida como reflexión de código. Según la propuesta, esto permitiría un acceso estándar, un análisis y una transformación del código Java a un formato adecuado.
El soporte para un modelo de programación que no sea Java podría implementarse más fácilmente en forma de una biblioteca Java. Babylon se aseguraría de que el código reflectante sea adecuado para su propósito mediante la creación de un modelo de programación de GPU para Java. Para reducir el riesgo de sesgo, el proyecto exploraría o fomentaría la exploración de otros modelos de programación como SQL y programación diferencial. La reflexión del código tiene tres aspectos: modelar programas Java como modelos de código, adecuados para acceso, análisis y transformación; mejoras en la reflexión de Java, que permite el acceso a modelos de código en tiempo de compilación y tiempo de ejecución; una API para construir, analizar y transformar modelos de código.
Una primera prueba sobre un clon de JDK 22
Para explicar la utilidad de Babylon, Paul Sandoz citó el ejemplo de un desarrollador que quiere escribir un kernel de GPU en Java y ejecutarlo en una GPU. El código del desarrollador debe analizarse y transformarse en un kernel GPU ejecutable. Aunque una biblioteca Java podría ser suficiente, sería necesario acceder al código Java en forma simbólica. Actualmente, este acceso está limitado al uso de API o convenciones no estándar en diferentes puntos del ciclo de vida del programa, es decir, tiempo de compilación o tiempo de ejecución. Además, las formas simbólicas disponibles (árboles sintácticos abstractos o códigos de bytes) suelen ser poco adecuadas para el análisis y la transformación.
Los hitos del proyecto exigen una entrega gradual de Babylon, en una serie de propuestas de mejora de JDK (JEP) que podrían abarcar múltiples lanzamientos de funciones. El pensamiento del código comenzaría con un clon del lanzamiento principal de JDK 22, programado para marzo de 2024, y seguiría con lanzamientos importantes en el futuro. Para el modelo de programación de GPU, el proyecto crearía un repositorio separado que depende de las funciones de reflexión del código a medida que se desarrollan. En este momento, el proyecto no planea integrar el modelo de programación de GPU en el JDK, pero el trabajo en este modelo puede identificar características y mejoras de utilidad general del JDK que podrían considerarse. más tarde.
Otras noticias que te pueden interesar