Dans mon interpréteur, je dois gérer ses objets d'exécution, ainsi que ses structures de données internes.Comment gérer la mémoire des structures de données et le tas d'une machine virtuelle en langage C
Je voudrais créer un interpréteur dans lequel il n'y a aucune différence entre les structures de données d'interpréteur (pile, table de symboles) et les objets créés par l'utilisateur. J'ai vu cela d'abord dans Little Smalltalk. De cette façon, l'interpréteur ressemble à une minuscule machine réelle, par rapport aux structures d'interpréteur vivant dans le tas géré et toutes étant du même type (comme l'architecture de von Neumann). Je pense que c'est la façon la plus cool et excitante d'écrire un interprète.
Mais je voudrais faire un peu différemment, en créant les objets gérés comme des structures C, et non des tableaux, comme normalement est fait. Le problème avec les structures C, se pose quand je voudrais essayer de recueillir ou de redimensionner le tas. Les pointeurs seraient invalidés.
Quelqu'un a-t-il pensé à faire cela avec des pointeurs? Je sais que c'est pratiquement impossible, mais quelqu'un est venu près?
Je suis désolé. Je ne peux pas rassembler assez pour comprendre ce que vous demandez. –
Je suis désolé encore plus! L'anglais n'est pas ma langue maternelle, parfois en écrivant en anglais je brouille ce que je pense à écrire. Obtient +1! –
Vous ne pouvez pas utiliser standard 'malloc',' realloc', 'free' pour" programme tas "et" structures de données "? – pmg