В моем интерпретаторе мне нужно управлять его объектами времени выполнения, а также внутренними структурами данных.
Я хотел бы создать интерпретатор, в котором нет различий между структурами данных интерпретатора (стек, таблица символов).) и объекты, созданные пользователем.Впервые я видел это в Little Smalltalk.
Таким образом, интерпретатор выглядит как крошечная настоящая машина в отношении структур интерпретатора, живущих в управляемой куче и имеющих одинаковый тип (например, архитектура фон Неймана).).Я думаю, что это самый крутой и захватывающий способ написания интерпретатора.
Но я бы хотел сделать немного по-другому, создавая управляемые объекты в виде структур Си, а не массивов, как обычно делается.Проблема со структурами C возникает, когда я пытаюсь собрать мусор или изменить размер кучи.Указатели будут признаны недействительными.
Кто-нибудь придумал, как это сделать с помощью указателей?Я знаю, что это практически невозможно, но кто-то подошел к этому?