Code automodifiable - Définition et Explications

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs est disponible ici.

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 (Un robot est un dispositif mécatronique (alliant mécanique, électronique et informatique) accomplissant automatiquement soit des tâches qui sont...) qui modifierait lui-même sa finalité, l'utilisation la plus courante du 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...) est l'optimisation de la vitesse (On distingue :) d'exécution d'un programme : par exemple un interpréteur (En informatique, un interprète (parfois appelé, à tort, « interpréteur » par mauvaise traduction de l'anglais) est un outil ayant pour tâche d'analyser, de traduire et d'exécuter un programme écrit dans un langage...) peut analyser le code source (Le code source (ou les sources voire le source) est un ensemble d'instructions écrites dans un langage de programmation informatique de haut niveau,...) qu'il est en train (Un train est un véhicule guidé circulant sur des rails. Un train est composé de plusieurs voitures (pour transporter des personnes) et/ou de plusieurs...) 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 (La vidéo regroupe l'ensemble des techniques, technologie, permettant l'enregistrement ainsi que la restitution d'images animées, accompagnées ou non de son, sur un support adapté à l'électronique et non de type photochimique. Le...), 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 (Tableau peut avoir plusieurs sens suivant le contexte employé :) 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 (Les adresses forment une notion importante en communication, elles permettent à une entité de s'adresser à une autre parmi un ensemble d'entités. Pour qu'il n'y ait pas d'ambiguïté, chaque adresse doit...) 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 (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir d'une information.) ne vous laissera pas faire cela, car les données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction d'affaire, d'un événement, etc.) 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 (En programmation, BASIC est un acronyme pour Beginner's All-purpose Symbolic Instruction Code. qui désigne une famille de langages de programmations de haut...), PHP (PHP (sigle de PHP: Hypertext Preprocessor), est un langage de scripts libre principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage...) ou LISP). Avec un langage compilé, écrire du code automodifiable nécessite généralement de définir une machine virtuelle (Le sens originel de machine virtuelle (ou Virtual Machine (VM) en anglais) est la création de plusieurs environnements d'exécution sur un seul ordinateur, dont chacun émule l'ordinateur hôte....) et un interpréteur pour cette machine virtuelle.

Cet article vous a plus ? Partagez-le sur les réseaux sociaux avec vos amis !
Page générée en 0.030 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique