Codice automodificante
Da Wikipedia, l'enciclopedia libera.
La programmazione di codice automodificante è una particolare tecnica di programmazione volta a realizzare programmi in grado di modificare il proprio codice durante l'esecuzione.
Per la complessità dell'analisi relativa a tali algoritmi, è una tecnica sconsigliata per quasi tutte le applicazioni: allo stato attuale solo i virus e i programmi di intelligenza artificiale fanno uso di codice automodificante. I virus lo fanno per cercare di sfuggire all'analisi dei programmi antivirus, mentre in IA serve per simulare (o per alcuni imitare) l'apprendimento.
In origine i programmi automodificanti erano realizzati per ottenere il massimo delle prestazioni dalle macchine ma con i moderni microprocessori ciò non è più vero, anzi spesso ottengono il risultato opposto: un moderno processore può venire rallentato dal codice automodificante.
Attualmente l'utilizzo della tecnica del codice automodificante viene sconsigliata da tutti i produttori di microprocessori poiché rende notevolmente più complessa la realizzazione degli stessi microprocessori. I microprocessori moderni suddividono le istruzioni e i dati in due aree separate di memoria. Il codice automodificate non è dotato di questa netta suddivisione dato che utilizza i dati per adattare il proprio codice e questo rende la sua gestione in un processore moderno molto difficile. Infatti solo Intel e AMD attualmente supportano l'esecuzione di codice automodificante sui loro prodotti della linea x86. Questo supporto è mantenuto per questioni di compatibilità.