Bonjour � tous,
actuellement, je dois m'occuper de la partie "allocation dynamique" d'un projet de compilateur, mais je n'ai aucune id�e r�elle de comment �a se passe, et comment on impl�mente cela.
A la base, je partais sur l'id�e de rester sur la stack, et allouer simplement de la place quand n�cessaire (genre pour traduire un alloc/alloc_array).
Mais je me suis vite rendu compte que �a deviendrait infaisable pour la simple raison que lorsque j'alloue une zone sur la stack, dans une fonction, et que la fonction finit son ex�cution, dans la plupart des cas, le pointeur de la stack va remonter et donc l'espace allou� sera en-dessous du pointeur de la stack, et si j'appelle de nouveau des fonctions, je dois m'assurer que je ne r��crit pas sur cet espace... et donc la stack me para�t un tr�s mauvais choix pour l'allocation dynamique.
Ensuite, j'ai entendu parl� de "heap" un peu partout, comme si c'�tait la solution � l'allocation dynamique, � part que je n'ai trouv� AUCUN tutorial � propos de cette pile en x86-64/x86 sous linux.
Bien s�r, il y a aussi l'argument : utilise malloc qui fait �a, mais j'ai l'impression que ce n'est pas du tout ce que je dois faire vu que je devrais �tre sens� plut�t "impl�menter moi-m�me malloc".
Et finalement, j'ai aussi vu �a et l� que un certain syscall � brk :
http://www.dreamincode.net/forums/to...e-memory-heap/
Sauf que �a ne fait pas vraiment appel � la "heap" et que j'ai plut�t �t� aiguill� pour utiliser cette derni�re par mon prof.
Avez-vous des informations sur l'allocation dynamique en x86-64 sous linux ?
Je dois avouer ne pas avoir d'int�r�t � appeler des functions malloc ou autre, je suis sens� les impl�menter en asm !
Sauf que �a a l'air �vident pour tout le monde vu que personne n'en parle (ou c'est un grand myst�re ? - j'en doute).
Merci pour votre aide
Partager