Les concepts antérieurs de variable dynamique étaient utilisés dans ALGOL 68, qui prévoyait une allocation sur le tas et sur la pile pour l'affectation des variables. Le type pointeur et un ramasse-miettes limité étaient également utilisés pour l'allocation sur le tas.
Conçues en 1968-1969, les variables dynamiques ont été initialement nommées et définies en Pascal , un langage de programmation développé par Niklaus Wirth en 1970. Ces variables étaient décrites comme des pointeurs stockant la mémoire des variables référencées. L'allocation de mémoire aux pointeurs était effectuée par une commande NEWet sa libération par une autre DISPOSE.
Les objets dynamiques, les pointeurs et les différents types de variables dynamiques dans différents langages de programmation ont été décrits pour la première fois en détail dans le livre de 1989 de Robert Sebesta, « Concepts of Programming Languages ».
Adressage
Le mode d'adressage indirect est utilisé pour ces variables, leur adresse étant déterminée à l'exécution et non en assembleur. Pour les variables dynamiques basées sur la pile, le mode d'adressage par pile est employé, utilisant un pointeur de pile (SP) et un pointeur de cadre (FP). Lors d'une opération d'empilement (push), SP remonte, et lors d'une opération de dépilement (pop), SP descend ; FP sert de référence de décalage à partir de laquelle SP est calculé. Ces deux modes d'adressage sont utilisés dans l'architecture x86 .
Portée et étendue
En programmation, une variable dynamique est locale, contrairement à une variable statique (globale). Cela signifie qu'elle ne peut être utilisée que dans la fonction où elle est définie. La réutiliser avec une valeur différente nécessite de la libérer puis de la libérer. La durée de vie d'une variable dynamique est contrôlée par le programmeur. La mémoire qui lui est allouée est effectuée à l'exécution. Pour éviter les fuites de mémoire, la variable dynamique doit être libérée avant d'être réutilisée.
En termes simples, les variables dynamiques ont une portée indéfinie , ce qui signifie que leur liaison est visible par tout code exécuté dans le programme. Leur étendue dynamique , quant à elle, signifie que la liaison de la variable n'est visible qu'entre le moment de sa création et le moment où le contrôle quitte le code utilisant la variable dynamique lors de son exécution. C'est pourquoi elles ne sont pas visibles en Python, car toutes les variables créées sont globales ou ont une portée lexicale .
Les objets dynamiques sont créés dans la méthode principale lorsque leur nombre est inconnu, ce qui leur confère une plus grande flexibilité que les objets statiques grâce à l'allocation dynamique de mémoire . Dans l'extrait de code ci-dessous, le constructeur est automatiquement appelé lors de la création de Counterl'objet dynamique et la valeur 5 lui est assignée. Lorsque l'objet est manipulé, le destructeur est appelé et le résultat est affiché.*cdelete~Counter
Plus d articles de Worldlex Wiki
Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.
Explorer l index