Open source Java VM designed for 8-bit, 16-bit, and 32-bit microcontrollers. From the article:
Unlike traditional JVMs, KESO is designed to operate in tandem with an RTOS, leaving to the RTOS many functions traditional JVMs might take on. For example, it does not implement thread scheduling and thread synchronization, but uses an existing RTOS to do these tasks.
KESO incorporates a minimalist and flexible form of garbage collection and assumes operation in a purely static memory environment, typical of many auto applications...
Various implementations of KESO on MCUs run the gamut from high end 32-bit MCUs such as the ARM Cortex-M and Infineon’s Tricore to Atmel’s 8-bit AVR MCUs and equivalent Microchip PICs. In the 8-bit domain, a typical memory configuration is about 8 kilobytes of flash and about 500 to 600 bytes or so of internal SRAM.
Sounds tailor-made for an XMOS implementation!