Есть ли способ компилировать дополнительный код во время выполнения в C или C ++?

Вот что я хочу сделать:

Run a program and initialize some data structures. Then compile additional code that can access/modify the existing data structures. Repeat step 2 as needed.

Я хочу быть в состоянии сделать это с обоимиC а такжеC++ с помощьюgcc (и в конце концовJava) в Unix-подобных системах (особенно в Linux и Mac OS X). Идея состоит в том, чтобы в основном реализовать цикл read-eval-print для этих языков, который компилирует выражения и операторы по мере их ввода и использует их для изменения существующих структур данных (что постоянно делается на языках сценариев). Я пишу этот инструмент вpython, который генерируетC/C++ файлы, но это не должно быть актуальным.

Я пытался сделать это с общими библиотеками, но узнал, что изменение общих библиотек не влияет на программы, которые уже запущены. Я также пытался использовать разделяемую память, но не смог найти способ загрузить функцию в кучу. Я также рассмотрел использование ассемблерного кода, но еще не пытался это сделать.

Я бы предпочел не использовать какие-либо компиляторы, кромеgcc если нет абсолютно никакого способа сделать это вgcc.

Если у кого-то есть идеи или они знают, как это сделать, любая помощь будет принята с благодарностью.

Ответы на вопрос(6)

Ваш ответ на вопрос