Una de las características de GraalVM es que podemos programar en diferentes lenguajes. Y esto es gracias a Truffle.
Truffle es un framwork Java para construir implementaciones de lenguajes de programación como intérpretes para árboles de sintaxis abstractos auto-modificables. Al escribir un intérprete de lenguaje con Truffle, automáticamente usará el compilador GraalVM como un compilador jit (just in time) para el lenguaje. Al tener acceso a este framework, una aplicación Ruby, por ejemplo, puede ejecutarse en la misma JVM que una aplicación Java. Además, un lenguaje host basado en JVM y un lenguaje invitado pueden interactuar directamente entre sí y pasar datos de un lado a otro en el mismo espacio de memoria.
Con el fin de proporcionar valores políglotas en los lenguajes implementados con Truffle, se ha desarrollado el llamado protocolo de interoperabilidad políglota. Este protocolo de interoperabilidad consiste en un conjunto de mensajes estandarizados que cada lenguaje implementa y usa para valores políglotas. El protocolo permite a GraalVM admitir la interoperabilidad entre cualquier combinación de lenguajes sin que sea necesario que se conozcan entre sí.
En próximos post, vamos a profundizar como ejecutar aplicaciones políglotas con graalvm.
Dejo link: https://www.graalvm.org/reference-manual/polyglot-programming/