Me acabas de recordar a la
maquina virtual parrot (ademas de la historia de la
torre de babel).
Desde hace mucho ha existido la necesidad de pasar el código de un lenguaje a otro. Y mas o menos todos tienen el mismo enfoque para resolver el problema.
Ejemplo con java:
1.- Pasar el código a byte-code.
2.- Después usar una maquina virtual para ejecutar ese byte-code.
Ese byte code es universal así que da igual si lo compilas en windows o linux, el byte code corre exactamente igual en cualquiera de los dos por que no lo ejecuta directamente la maquina si no una maquina virtual.
Ejemplo con .NET:
1.- Pasa el código de un lenguaje a un lenguaje intermedio (
CLR).
2.- Ese código intermedio lo compilan para que sea interpretado directamente por la maquina.