* Agence Joomla Besancon
Agence Joomla Besancon
Article:
Ordinairement , tout dictionnaire de variables est modélisé par une table de hachage pour avoir un temps de recherche idéal dans chaque dictionnaire (le temps de recherche devient pratiquement autonome du nombre de variables stockées dans le dictionnaire). Pour cela, le nom de la variable est modifié en une clé de recherche numérique dont tous les bits d'information sont équidisés au moyen d'une fonction de hachage; cette clé numérique est alors baissée à l'écart de la taille de la table de hachage, pour avoir l'endroit où la variable est stockée.Comme des impacts sont probables, la table de hachage comprend à chaque position utilisée à la fois une entrée pour le nom de la variable (pour pouvoir vérifier par égalité que la bonne variable est stockée à cette place).Il y’en a donc multiples stratégies pour régler l'impact de variables départant la même clé calculée : Etendre la taille de la table de hachage et reclasser toutes les variables qui y sont déjà stockées. Cette manoeuvre est coûteuse lors de l'allongement de variable mais permet de réduire le nombre de collision. Assembler dans une liste les variables départant le même endroit dans la table de hachage. La liste de collision peut être externe à la table, ou bien détenir des endroits choisis aléatoirement parmi les endroits disponibles dans la table de hachage. Stocker à la place définie par la clé de hachage collective, une autre variable telle qu'une référence à une autre table de hachage (comportant toutes les variables divisant la même clé dans la première table), la seconde table utilisant une fonction de hachage spécifique (dans ce cas le temps de recherche devient partiellement logarithmique en fonction du nombre total de variables, et non partiellement linéaire). PostScript et Forth disposent ceci de spécial que tous les dictionnaires (référencés dans la pile de portée) sont eux-mêmes des variables que l'on peut appeler, que l'on peut soit utiliser directement soit rechercher par leur nom recherché lui aussi dans la pile de portée, avant d'en avoir la référence, qu'on peut alors empiler dans la pile de portée. Il n'y a donc dans ces langages aucun nom de variable réservé, tous les noms d'objets prédéfinis étant en fait référencé dans une pile de portée qui n'est jamais vide mais référence au minimum un premier dictionnaire "système" de portée comportant sa propre référence et son propre nom. Encore il est possible de annuler sélectivement certaines variables de toutes les résolutions ultérieures de portée, en supprimant leur référence dans un des dictionnaires référencés dans la pile de portée (ceci permet de masquer certaines variables d'un niveau de porté donné pour utiliser après la variable définie dans un niveau de portée inférieur).