Você pode utilizar Java™ ou C para implementar uma extensão definida pelo usuário.
É possível utilizar C para implementar todos os tipos de extensão definida pelo usuário, mas é possível utilizar Java para implementar apenas os nós definidos pelo usuário.
Se puder, utilize Java para nós definidos pelo usuário e utilize C para todo o resto.
Você deve compilar os nós definidos pelos usuários, analisadores e saídas que são gravados em C na biblioteca LIL (Loadable Implementation Library); ou seja, uma biblioteca compartilhada nos sistemas Linux e UNIX ou um DLL (Dynamic Link Library) em sistemas Windows. Você deve compactar nós definidos pelo usuário gravados em Java como um arquivo JAR.
Para obter independência de plataforma, utilize linguagens de programação C padrão ANSI ou Java e evite código específico de plataforma em sua extensão definida pelo usuário.