¿Hay alguna forma de compilar código adicional en tiempo de ejecución en C o C ++?

Esto es lo que quiero hacer:

Ejecuta un programa e inicializa algunas estructuras de datos.Luego compile el código adicional que puede acceder / modificar las estructuras de datos existentes.Repita el paso 2 según sea necesario.

Quiero poder hacer esto con ambosC yC++ utilizandogcc (y eventualmenteJava) en sistemas similares a Unix (especialmente Linux y Mac OS X). La idea es básicamente implementar un bucle de lectura-evaluación-impresión para estos idiomas que compila expresiones y declaraciones a medida que se ingresan y las usa para modificar las estructuras de datos existentes (algo que se hace todo el tiempo en lenguajes de scripting). Estoy escribiendo esta herramienta enpython, que genera elC/C++ Archivos, pero esto no debería ser relevante.

He explorado cómo hacer esto con bibliotecas compartidas, pero he aprendido que modificar bibliotecas compartidas no afecta a los programas que ya se están ejecutando. También he intentado usar la memoria compartida, pero no pude encontrar una manera de cargar una función en el montón. También he considerado usar el código de ensamblaje pero aún no he intentado hacerlo.

Preferiría no usar ningún compilador que no seagcc a menos que no haya absolutamente ninguna manera de hacerlo engcc.

Si alguien tiene alguna idea o sabe cómo hacerlo, cualquier ayuda será apreciada.

Respuestas a la pregunta(6)

Su respuesta a la pregunta