Brevet FR3070775A1 — publié le 20190308

Allocation dynamique utilisant plusieurs piles Le domaine de l'invention se rapporte aux traitements de données numériques mis en oeuvre par des moyens informatiques, et plus particulièrement à la gestion de la mémoire impliquée dans un tel contexte. De façon connue, en informatique, on appelle allocation le mécanisme visant à réserver des emplacements d'une mémoire pour y stocker des variables ou des objets, qui peuvent présenter des degrés de complexité et de taille élevés. Le pendant de l'allocation, la désallocation, est le mécanisme par lequel la mémoire allouée est libérée. Parmi les principes couramment employés pour régir l'allocation d'objets d'un traitement de données à une mémoire, on recense le principe d'allocation dit sur une pile, ou encore dit en pile. Ce principe repose sur l'emploi d'un pointeur qui désigne la première adresse mémoire disponible. L'objet qui se voit alloué à la mémoire est alors stocké par suite à cette adresse, et le pointeur est mis à jour à partir de cette adresse mémoire et de la taille de l'objet alloué. Ce principe d'allocation est particulièrement intéressant en ce qu'il est simple d'implémentation et donc de haute performance, mais il impose que la désallocation soit symétrique par rapport à l'allocation. Autrement dit, parmi les objets présents dans la mémoire à un instant donné, le dernier objet créé doit être le premier détruit. Ce fonctionnement est connu sous l'acronyme anglophone LIFO, pour Last In First Out en anglais, qui peut être traduit par « dernier arrivé premier parti ». Dans de très nombreuses applications, du fait que les différents objets d'un traitement de données présentent des emplois très variés, ils se prêtent difficilement et/ou avec une moindre performance à une allocation et une désallocation correspondant à un fonctionnement de la mémoire en pile. En conséquence, le principe de gestion de la mémoire impliquée dans un traitement de données doit généralement être grandement complexifié. L'invention vise à résoudre ce problème. A cet effet, l'invention concerne un procédé pour la réalisation d'un traitement de données, le procédé étant mis en oeuvre par des moyens informatiques et comprenant - - pour une pluralité d'objets du traitement de données, mener une analyse d'un code informatique du traitement de données définissant un emploi desdits objets au sein du traitement de données, - en fonction de l'analyse du code informatique, allouer chaque objet à l'une d'une pluralité de zones mémoires pour la construction puis la destruction de chaque objet dans la zone mémoire correspondante lors du traitement de données de sorte que lors du traitement de données, chaque zone mémoire présente un fonctionnement en pile. 2 Selon un aspect de l'invention, au moins deux zones mémoires forment des zones respectives distinctes d'une seule et même entité mémoire. Selon un aspect de l'invention, les deux zones mémoires ont des emplacements de départ respectifs définis par des extrémités respectives opposées de l'entité mémoire. 5 Selon un aspect de l'invention, les deux zones mémoires sont chacune associée à un pointeur configuré pour pointer vers un premier espace libre de la zone mémoire considérée, le pointeur de chacune des deux zones mémoires étant configuré pour se rapprocher du pointeur de l'autre zone mémoire en cas de construction d'un objet dans la zone mémoire considéré. Selon un aspect de l'invention, au moins deux zones appartiennent à des entités mémoires différentes. 10 Selon un aspect de l'invention, mener une analyse du code informatique inclut, pour chaque objet de tout ou partie des objets, déterminer un début et une fin de l'emploi de l'objet au sein du traitement de données, l'allocation de l'objet à la zone mémoire correspondante étant réalisée en fonction du début et de la fin de l'emploi de l'objet. Selon un aspect de l'invention, pour au moins un objet, ledit objet est alloué à la zone mémoire 15 correspondante en fonction de la valeur d'un paramètre de définition dudit objet représentatif d'une zone mémoire parmi la pluralité de zones mémoires, ladite valeur étant renseignée dans ledit code préalablement à l'analyse du code informatique. Selon un aspect de l'invention, le procédé comprend en outre une compilation du code informatique pour la production d'un ou plusieurs fichiers exécutables exécutés lors du traitement de données, la 20 compilation comprenant pour au moins un objet, l'insertion dans un code informatique transformé généré à partir dudit code informatique pour la production du ou des fichiers exécutables, d'un appel à un destructeur configuré pour détruire ledit objet de la zone mémoire correspondante immédiatement à la fin de l'emploi dudit objet. Selon un aspect de l'invention, pour au moins un objet, l'objet est alloué à une zone mémoire à un 25 instant où la taille de l'objet dans la zone mémoire n'est pas connue. L'invention concerne en outre un programme informatique comprenant des instructions pour la mise en oeuvre du procédé tel que défini ci-dessus lorsqu'exécutées par un processeur. L'invention concerne en outre un dispositif configuré pour être employé en vue de la réalisation d'un traitement de données, le dispositif comprenant un module d'analyse configuré pour : 30 - pour une pluralité d'objets du traitement de données, mener une analyse d'un code informatique du traitement de données définissant un emploi desdits objets au sein du traitement de données, 3 - en fonction de l'analyse du code informatique, allouer chaque objet à l'une d'une pluralité de zones mémoires d'un module mémoire pour la construction puis la destruction de chaque objet dans la zone mémoire correspondante lors du traitement de données de sorte que lors du traitement de données, chaque zone mémoire présente un fonctionnement en pile. 5 L'invention sera mieux comprise à la lecture de la description détaillée qui va suivre, donnée uniquement à titre d'exemple et faite en référence aux Figures annexées sur lesquelles : - la Figure 1 illustre un dispositif selon l'invention ; - la Figure 2 illustre un module mémoire du dispositif de la Figure 1; - la Figure 3 est un diagramme-bloc illustrant un procédé selon l'invention ; 10 - la Figure 4 illustre les débuts et fins d'emploi d'une pluralité d'objets dans le cadre de l'invention ; et - la Figure 5 illustre une configuration alternative au sens de l'invention. La Figure 1 illustre un dispositif DIS selon l'invention. Le dispositif DIS est configuré pour être employé au moins en vue de la réalisation d'un traitement de données. 15 Dans le cadre de l'invention, deux configurations du dispositif DIS sont prévues. Dans le cadre de la première configuration, le dispositif DIS est adapté pour la mise en oeuvre effective du traitement de données. Dans le cadre de la deuxième configuration, le dispositif DIS intervient dans la préparation du traitement de données, dont la mise en oeuvre effective est menée par un deuxième dispositif distinct 20 du dispositif DIS. Ceci est décrit en détails dans ce qui suit. De façon générale, le dispositif DIS est un dispositif informatique, les données dont il est question dans le traitement de données étant des données numériques. Les données du traitement de données se rapportent à un contenu quelconque. Par exemple, elles sont 25 représentatives d'informations envoyées par un premier équipement électronique à destination d'un deuxième équipement électronique. Le traitement de données comprend la manipulation d'objets OBJ faisant partie des données du traitement de données. On remarque que ces objets peuvent intervenir à un stade quelconque du 4 traitement de données, et exister sur une portion plus ou moins longue du traitement de données, voire toute la durée de traitement de données. Par exemple, les objets OBJ présentent un type quelconque parmi les types d'objets communément rencontrés dans les traitements de données. 5 Par exemple, chaque objet OBJ correspond à un élément parmi le groupe comprenant au moins un nombre, une matrice, une liste, une chaîne de caractères. Dans le cadre de la première configuration du dispositif, le dispositif DIS comprend un module de communication COM, un module mémoire MM et un module de traitement TRA. Il comprend en outre un module d'analyse ANA. 10 Ces éléments sont en communication les uns avec les autres, par exemple au moyen d'un ou plusieurs bus auxquels ils sont connectés. Le module de communication COM est configuré pour permettre les communications entre le dispositif DIS et d'autres équipements. Par exemple, ce module est configure pour la réception par le dispositif DIS de données utilisées au départ du traitement de données. 15 Avantageusement, ce module COM est également prévu pour la fourniture à un dispositif distant du dispositif DIS des données résultant de ce traitement de données. Le module de communication COM est adapté pour des communications selon une ou plusieurs technologie connue. Avantageusement, le module de communication COM est adapté pour les communications sans fil. 20 Par exemple, il est adapté pour des communications sans fil reposant sur une ou plusieurs technologies standardisées employées en téléphonie mobile telles que 3G, 4G, 5G, etc., une ou plusieurs technologies de communication en champ proche, et/ou une ou plusieurs des technologies parmi les technologies ZigBee, RFID, WiFi, etc. Alternativement ou parallèlement, le module de communication COM est adapté pour les 25 communications filaires, par opposition aux télécommunications sans fil. Par exemple, il comprend une ou plusieurs prises pour la connexion du module de communication à un équipement distant via un fil. Toute communication via un support de données amovible tel qu'un module USB, pour Universal Serial Bus (qui peut être traduit par Bus Universel en Série), est évidemment possible. 30 Le module mémoire MM est adapté pour le stockage de données de façon générale. 5 Dans le contexte de l'invention, le module mémoire MM est en particulier adapté pour le stockage des données du traitement de données, notamment des objets OBJ, et ce aux différents stades du traitement des données. Le module mémoire MM est également adapté pour le stockage de programmes nécessaires au bon 5 fonctionnement du dispositif DIS, et ce aussi bien pour la réalisation du traitement de données que pour le fonctionnement courant du dispositif DIS. Notamment, le module mémoire MM est adapté pour le stockage d'un programme PRG selon l'invention comprenant des instructions pour la mise en oeuvre du procédé selon l'invention décrit ci-après lorsqu'exécutées par un processeur tel que le module de traitement TRA. 10 Le module mémoire MM est également adapté pour le stockage d'un code informatique COD qui définit le traitement de données. Le code informatique COD est représentatif d'une définition d'une ou plusieurs séquences d'opérations du traitement de données, dans le cadre de laquelle les objets OBJ du traitement sont manipulés. 15 Par exemple, pour chaque objet OBJ du traitement, le code informatique COD comprend une définition de l'objet OBJ considéré ainsi que de l'emploi de cet objet. Cet emploi présente un début et une fin. On remarque que cette définition et/ou cet emploi n'est pas nécessairement explicite dans le code informatique COD. Autrement dit, la définition et l'emploi peuvent naître du code informatique sans 20 s'y trouver sous forme explicite. On remarque que cette définition est en revanche typiquement rendue explicite dans un ou plusieurs fichiers exécutables EXEC décrits ci-après et générés à partir du code informatique. Par exemple, le début de l'emploi est défini par la première occurrence, dans le code COD, de l'objet OBJ. La fin de l'emploi est par exemple définie par la dernière occurrence, dans le code COD, de 25 l'objet en question. L'emploi en question inclut au moins une opération au cours de laquelle l'objet est manipulé, telle que par exemple une opération de création de l'objet. Avantageusement, l'emploi comprend la génération d'un nouvel objet à partir de l'objet en question. Le code COD est rédigé dans un ou plusieurs langages informatiques. Par exemple, ce langage est un 30 langage connu, tel que le langage C++. 6 En pratique, le code informatique COD définit en tout ou partie les opérations du traitement de données effectué. Par exemple, il définit ainsi les données d'entrée du traitement ainsi que l'ensemble des opérations auxquelles ces données sont soumises lors du traitement. De manière classique, le code informatique COD est destiné à être transformé en un ou plusieurs 5 fichiers exécutables EXEC et dont l'exécution par un ou plusieurs processeurs tels ceux du modules de traitement TRA se traduit par la mise en oeuvre du traitement de données. Cette opération de transformation est connue sous le nom de compilation. Cette transformation se traduit par l'existence du code sous une ou plusieurs formes formant des états intermédiaires du code entre sa forme initiale en tant que code informatique COD, et les fichiers 10 exécutables EXEC en question. Comme décrit ci-après, l'une de ces formes inclut par exemple, outre le code dans une version transformée ou non, des instructions ajoutées par rapport au code COD, telles que par exemple des instructions ajoutées par le module d'analyse ANA. Le module mémoire MM comprend au moins une entité mémoire EMi, i indexant la ou les entités mémoires. 15 Chaque entité mémoire EMi forme un espace mémoire continu pour le stockage de données du traitement, en particulier des objets OBJ. Autrement dit, au sein de chaque entité mémoire, les adresses logiques des différents blocs formant l'espace mémoire se suivent. L'espace mémoire en question est un espace mémoire logique. On remarque qu'un espace mémoire peut correspondre à plusieurs espaces mémoires physiques. 20 De manière connue, cet espace mémoire comprend des blocs adaptés pour contenir des données, restituer ces données, et détruire ces données, et, ce faisant, rendre à nouveau disponibles les blocs précédemment occupés pour de nouvelles données. Le principe physique sous-tendant ces fonctionnalités est par exemple connu. De façon générale, les entités mémoires sont par exemple de facture connue et sont de type 25 quelconque. Avantageusement toutefois, les entités mémoires sont des entités de type mémoire vive, telle que par exemple de type DRAM (pour Dynamic Random Access Memory, pour Mémoire Vive Dynamique). Bien qu'illustré en Figures 1 et 2 sous la forme d'un bloc localisé spatialement, le module mémoire MM prend une forme quelconque en termes de nombre d'entités mémoires qu'il comprend et de 30 distribution de ces entités mémoires entre les différents éléments du dispositif DIS illustrés. Par exemple, tout ou partie de ces entités mémoire est contenu dans le module de traitement TRA. 7 Le module de traitement TRA est configuré pour piloter les autres éléments du dispositif DIS pour le fonctionnement du dispositif DIS. Le module de traitement TRA comprend un ou plusieurs processeurs CPUi notamment adaptés pour exécuter des instructions, notamment pour effectuer des opérations sur les données de traitement de 5 données pour la mise en oeuvre de ce traitement. Avantageusement, le module TRA comprend une pluralité de tels processeurs. Les processeurs CPUi sont par exemple adaptés pour fonctionner selon un mode de fonctionnement dans le cadre duquel l'un des processeurs fonctionne comme processeur maître, et les autres comme processeurs esclaves, comme connu de l'homme du métier. 10 En référence à la Figure 2, le module d'analyse ANA est configuré pour analyser le code informatique COD contenu dans le module mémoire MM pour le transformer en le ou les fichiers exécutables EXEC. De manière plus spécifique, le module ANA est configuré pour au moins analyser le code informatique COD et générer, à partir de ce code, le ou les fichiers exécutables destinés à être exécutés 15 pour la mise en oeuvre du traitement de données en tant que tel. Autrement dit, le module d'analyse ANA est configuré en tant que compilateur. Par exemple, il s'agit d'un compilateur de type connu. Avantageusement, le compilateur est paramétrable par un utilisateur. Dans le contexte de l'invention, le module d'analyse ANA est configuré pour allouer, en fonction de l'analyse du code informatique COD, au moins une partie des objets OBJ du traitement de données à 20 l'une d'une pluralité de zones mémoires ZMij appartenant respectivement à l'entité mémoire EMj. Autrement dit, le module d'analyse ANA est configuré pour définir que, lors de l'exécution des fichiers issus de la compilation, la construction - et donc la destruction - de chaque objet OBJ par le module ANA aura lieu dans telle ou telle zone mémoire ZMij qui se trouve dans l'entité mémoire EMj. 25 En outre, dans le contexte de l'invention, le module d'analyse ANA est configuré pour allouer les objets OBJ en question aux zones mémoires ZMij de sorte que chaque zone mémoire ZMij présente, lors du traitement de données, un fonctionnement en pile. Autrement dit, lors du traitement de données en tant que tel, du fait de l'allocation réalisée par le module ANA, chaque ZMij présente un fonctionnement de type LIFO, pour dernier arrivé premier 30 parti. Avantageusement, ceci est le cas pour tous les objets OBJ du traitement de données. 8 On remarque que dans certaines réalisations, pour au moins un objet OBJ, son allocation à l'une des zones mémoires est réalisée à un instant où la taille de l'objet OBJ dans cette zone mémoire n'est pas connue. Le détail de l'allocation des objets OBJ par le module d'analyse ANA est décrit dans le cadre de la 5 description du procédé selon l'invention ci-après. Les zones mémoires ZMij sont au moins au nombre de deux. Leur nombre exact est par exemple prédéterminé. Le fonctionnement en pile est connu en soi. Dans le cadre de ce fonctionnement, chaque zone mémoire ZMij est associée à un pointeur Pij qui est représentatif du premier bloc mémoire libre de la 10 zone correspondante, les blocs précédents, c'est-à-dire situés entre le bloc mémoire de départ de la zone mémoire et ce bloc désigné par le pointeur, étant occupés par des données. En cas de construction d'un objet dans la zone mémoire ZMij, celui-ci est construit dans le bloc-mémoire désigné par le pointeur et les blocs mémoires suivants en fonction de la taille de l'objet, le pointeur étant mis à jour pour désigner le nouveau premier bloc mémoire libre. 15 En cas de destruction du dernier objet crée dans la zone mémoire, les blocs mémoires correspondants sont libérés et le pointeur est mis à jour pour désigner le premier bloc mémoire libre de la zone mémoire après cette destruction. Ainsi, la gestion d'une mémoire en pile est particulièrement simple dans la mesure où elle repose essentiellement sur la gestion du pointeur associé. 20 Comme rendu apparent ci-dessus, ici, le terme d'allocation est à comprendre comme désignant l'association faite entre un objet OBJ et une zone mémoire ZMij et qui aboutit au fait que lors du traitement de données, l'objet OBJ est construit dans cette zone mémoire. Dans le cadre de l'invention, cette allocation est faite par le module d'analyse ANA en amont du traitement de données effectif. Avantageusement, dans le cadre de l'invention, au moins deux zones mémoires ZMij font partie 25 d'une même entité mémoire EMi. Autrement dit, elles correspondent à des régions différentes d'un même espace mémoire. Avantageusement, en outre, ces zones mémoires ZMij ont des emplacements de départ respectifs correspondant à des extrémités de cette entité mémoire EMi, qui sont opposées. Autrement dit, en considérant que l'entité mémoire EMi présente un premier bloc mémoire et un dernier bloc mémoire 30 au sens d'un ordre de parcours choisi, ces premier et dernier blocs forment des points de départ respectifs des deux zones mémoires en question. 9 Lors de la construction d'un objet dans l'une de ces zones mémoires, la mise à jour du pointeur associé se traduit par le déplacement de ce pointeur vers le pointeur de l'autre zone mémoire. Autrement dit, en cas de remplissage, les pointeurs de ces zones mémoires se déplacent dans des sens respectifs opposés, de sorte qu'ils se rapprochent l'un de l'autre en cas de création d'un objet dans 5 l'une des zones mémoires. Par exemple, les zones mémoires de référence ZM11 et ZM21 en Figure 2 sont configurées de la sorte. Cette configuration est particulièrement avantageuse en termes de dimensionnement des espaces mémoires impliqués. Toutefois, cette configuration est optionnelle. Par exemple, les zones mémoires ZMij d'une même 10 entité EMj ont des pointeurs Pij, qui se déplacent dans le même sens en cas de construction d'un objet dans la zone mémoire associée. Dans cette configuration, le point de départ de l'une des mémoires ne forment pas un bloc mémoire d'extrémité, comme illustré par la zone mémoire ZM22 en Figure 2. On remarque que le module d'analyse ANA est avantageusement logiciel. 15 Alternativement ou parallèlement, le module d'analyse ANA est matériel. Le procédé selon l'invention pour la réalisation d'un traitement de données va maintenant être décrit en détails en référence aux Figures, notamment à la Figure 3. Lors d'une étape initiale SO, on dispose du code informatique COD, qui définit le traitement de données à venir. Comme indiqué précédemment, cette définition peut être en partie implicite, 20 notamment pour les objets OBJ. Ce code informatique COD est par exemple issu d'un processus de génération impliquant une ou plusieurs personnes ayant rédigé le code informatique en tout ou partie, et/ou un ou plusieurs équipements électroniques, typiquement utilisé pour la saisie du code en question et/ou la génération d'une partie du code. 25 Lors d'une étape Si, le module d'analyse ANA analyse le code informatique COD pour allouer au moins une partie des objets OBJ du traitement de données reflétés dans le code informatique COD à l'une des zones mémoires ZMij de sorte que celles-ci fonctionnent en pile lors de l'exécution du traitement de données. Avantageusement, chaque objet OBJ du traitement de données est ainsi alloué à l'une des zones 30 mémoires ZMij. 10 Dans une réalisation donnée, pour faire cette allocation, pour chaque objet OBJ, le module d'analyse ANA détermine le début et la fin d'emploi de l'objet OBJ considéré dans le cadre du traitement de données. Par exemple, pour deux objets A et B, leur emploi dans le traitement de données est défini par le 5 code illustratif donné en Annexe 1. 10 15 Les débuts et fins d'emploi des objets, par exemple notés par leurs instants respectifs d'occurrence toA, tfA, toB, tfB, toC et tfC pour trois objets A, B, C illustrés sur la Figure 4, sont employés pour l'association à chaque objet d'une zone mémoire ZMi,j. Par exemple, dans une configuration, cette association est réalisée par tri des objets en groupes d'objets au sein desquels les emplois des objets ne se chevauchent pas, comme illustré en Figure 4. 20 Autrement dit, au sein de chaque groupe d'objets, pour toute paire d'objets A, B, A étant celui dont l'emploi prend fin le premier, la relation tfA Annexe 2: void func() OBJ A ; //création de A OBJ B; //création de B Destructeur (A) ; Destructeur (B) ; REVENDICATIONS1. Procédé pour la réalisation d'un traitement de données, le procédé étant mis en oeuvre par des moyens informatiques et comprenant - - pour une pluralité d'objets (OBJ) du traitement de données, mener une analyse d'un code informatique (COD) du traitement de données définissant un emploi desdits objets (OBJ) au sein du traitement de données, - en fonction de l'analyse du code informatique (COD), allouer chaque objet à l'une d'une pluralité de zones mémoires (ZMij) pour la construction puis la destruction de chaque objet dans la zone mémoire correspondante lors du traitement de données de sorte que lors du traitement de données, chaque zone mémoire (ZMij) présente un fonctionnement en pile. 2. Procédé selon la revendication 1, dans lequel au moins deux zones mémoires (ZMij) forment des zones respectives distinctes d'une seule et même entité mémoire (EM1, EM2). 3. Procédé selon la revendication 2, dans lequel les deux zones mémoires (ZMij) ont des emplacements de départ respectifs définis par des extrémités respectives opposées de l'entité mémoire (EM). 4. Procédé selon la revendication 2 ou 3, dans lequel les deux zones mémoires (ZMij) sont chacune associée à un pointeur (Pij) configuré pour pointer vers un premier espace libre de la zone mémoire considérée, le pointeur (Pij) de chacune des deux zones mémoires étant configuré pour se rapprocher du pointeur (Pij) de l'autre zone mémoire en cas de construction d'un objet dans la zone mémoire considéré. 5. Procédé selon l'une quelconque des revendications précédentes, dans lequel au moins deux zones mémoires (ZMij) appartiennent à des entités mémoires différentes (EMi). 6. Procédé selon l'une quelconque des revendications précédentes, dans lequel mener une analyse du code informatique inclut, pour chaque objet (OBJ) de tout ou partie des objets, déterminer un début et une fin de l'emploi de l'objet (OBJ) au sein du traitement de données, l'allocation de l'objet à la zone mémoire correspondante étant réalisée en fonction du début et de la fin de l'emploi de l'objet. 7. Procédé selon l'une quelconque des revendications précédentes, dans lequel, pour au moins un objet, ledit objet est alloué à la zone mémoire correspondante en fonction de la valeur d'un paramètre de définition dudit objet représentatif d'une zone mémoire (ZMij) parmi la pluralité de zones mémoires, ladite valeur étant renseignée dans ledit code préalablement à l'analyse du code informatique. 17 8. Procédé selon l'une quelconque des revendications précédentes, comprenant en outre une compilation du code informatique (COD) pour la production d'un ou plusieurs fichiers exécutables exécutés lors du traitement de données, la compilation comprenant pour au moins un objet, l'insertion dans un code informatique transformé généré à partir dudit code informatique pour la production du 5 ou des fichiers exécutables, d'un appel à un destructeur configure pour détruire ledit objet (OBJ) de la zone mémoire (ZMij) correspondante immédiatement à la fin de l'emploi dudit objet (OBJ). 9. Procédé selon l'une quelconque des revendications précédentes, dans lequel, pour au moins un objet (OBJ), l'objet est alloué à une zone mémoire à un instant où la taille de l'objet dans la zone mémoire (ZMij) n'est pas connue. 10 10. Programme informatique comprenant des instructions pour la mise en oeuvre du procédé selon l'une quelconque des revendications précédentes lorsqu'exécutées par un processeur. 11. Dispositif (DIS) configure pour être employé en vue de la réalisation d'un traitement de données, le dispositif comprenant un module d'analyse (ANA) configuré pour : - pour une pluralité d'objets (OBJ) du traitement de données, mener une analyse d'un code 15 informatique (COD) du traitement de données définissant un emploi desdits objets au sein du traitement de données, - en fonction de l'analyse du code informatique, allouer chaque objet (OBJ) à l'une d'une pluralité de zones mémoires (ZMij) d'un module mémoire (MM) pour la construction puis la destruction de chaque objet dans la zone mémoire correspondante lors du traitement de données de sorte que lors du 20 traitement de données, chaque zone mémoire (ZMij) présente un fonctionnement en pile.