Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Code automodifiable — Wikipédia
Code automodifiable — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources (décembre 2012).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

Un code automodifiable est, en programmation 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

[modifier | modifier le code]

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 comme protection anticopie 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

[modifier | modifier le code]

Écrire 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. Cela fonctionne en mode réel, mais la plupart des systèmes d'exploitation modernes ne le permettent pas : les données et les programmes résident dans des espaces séparés et l'exécution d'instructions se trouvant dans le segment des données est bloquée.

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.

Notes et références

[modifier | modifier le code]

Voir aussi

[modifier | modifier le code]

Sources et bibliographie

[modifier | modifier le code]
Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

Articles connexes

[modifier | modifier le code]
  • Programme informatique
  • Fonctions informatiques

Liens externes

[modifier | modifier le code]
  • [Exemple de code auto-modifiant en assembleur x86 sur developpez.net](https://www.developpez.net/forums/d1400264/autres-langages/assembleur/contribuez/exemple-code-auto-modifiant/) — Exemple éducatif en FASM PE32 illustrant l'injection dynamique d’opcodes dans une zone de traitement.
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Code_automodifiable&oldid=226193776 ».
Catégorie :
  • Programmation informatique
Catégories cachées :
  • Article manquant de références depuis décembre 2012
  • Article manquant de références/Liste complète
  • Article avec une section vide ou incomplète
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id