Code Automodifiable


Code Automodifiable

Code automodifiable

On appelle ainsi un programme informatique qui peut se modifier lui-même, c’est-à-dire appeler des routines, fonctions ou méthodes qui seront créées par le programme lui-même.

Utilisation de code automodifiable

En dehors de l'idée, qui relève pour le moment de la fiction, d'un robot qui modifierait lui-même sa finalité, l'utilisation la plus courante du code automodifiable est l'optimisation de la vitesse d'exécution d'un programme : par exemple un interpréteur peut analyser le code source qu'il est en train d'exécuter, se rendre compte qu'une fonction est appelée fréquemment, et en réaliser à la volée une version compilée, qui sera exécutée plus rapidement. C'est ce que l'on appelle la compilation à la volée (just in time compilation), qui est utilisée par exemple par la plupart des machines virtuelles pour le langage java.

Certaines de ces techniques sont utilisées pour la protection des jeux vidéo, en effet il est alors pratiquement impossible de comprendre le code sans l'exécuter pas à pas.

Techniques d'écriture de code automodifiable

Ecrire du code automodifiable n'est pas facile, avec certains langages compilés c'est même impossible ou presque impossible. Par exemple en C, l'idée intuitive serait de créer un tableau d'octets qui représentent le code binaire d'une fonction, puis de créer un pointeur de fonction, et de lui affecter (avec un "cast") l'adresse du tableau. Ensuite un appel du pointeur de fonction suffit à exécuter la nouvelle routine ... Mais hélas sur la plupart des processeurs le gestionnaire de mémoire ne vous laissera pas faire cela, car les données et les programmes résident dans des espaces séparés, et vous aurez une violation de segment.

Dans un langage de script, où les programmes sont des textes, il est bien plus facile d'écrire du code automodifiable. D'une manière générale, c'est plus simple avec un langage interprété (comme BASIC, PHP ou LISP). Avec un langage compilé, écrire du code automodifiable nécessite généralement de définir une machine virtuelle et un interpréteur pour cette machine virtuelle.


  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Code automodifiable ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Code Automodifiable de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • Code automodifiable — Un code automodifiable est, en programme informatique, un programme qui peut se modifier lui même, c’est à dire appeler des routines, fonctions ou méthodes qui seront créées par le programme lui même. Utilisation de code automodifiable En dehors… …   Wikipédia en Français

  • Fichier de test Eicar — Pour les articles homonymes, voir EICAR. Le fichier de test Eicar est une chaîne de caractères, écrite dans un fichier informatique, destiné à tester le bon fonctionnement des logiciels antivirus. En anglais, il est dénommé « Anti Virus test …   Wikipédia en Français

  • StrongARM — Un StrongARM Le StrongARM est un microprocesseur de la famille des processeurs ARM. Il a été créé par Digital Equipment Corporation (DEC), puis acquis par Intel qui à continué à produire une version améliorée, le XScale, avant de le revendre à… …   Wikipédia en Français