Che cos'è un codice automodificante?
Il codice automodificante è una filosofia di programmazione in cui lo sviluppatore crea un programma che è in grado di alterare la propria codifica quando eseguito. Mentre lo sviluppatore può inserire parametri per il codice auto-modificante, di solito cambia e si ottimizza senza interazione. Ci sono alcuni fenomeni informatici che causano il cambiamento involontario della codifica, ma solo il codice di auto-modifica intenzionale è veramente considerato auto-modificante. Questo è più comunemente usato dagli sviluppatori per migliorare la loro codifica, perché eseguire la codifica più volte può migliorare notevolmente il design originale.
L'aspetto più determinante del codice automodificante è la sua capacità di cambiare se stessa in meglio. Questo può essere fatto solo quando la codifica si sta preparando per l'esecuzione e quando si sta preparando l'esecuzione. Il codice di esecuzione dovrà fare il punto del software attuale del computer, dello stato e di altri fattori, quindi questo normalmente aiuta il codice a riconoscere gli errori di elaborazione per correggere al meglio la propria elaborazione.
Gli sviluppatori a volte impostano parametri per il codice auto-modificante, come correggersi principalmente per le prestazioni, ma il codice normalmente si correggerà da solo senza interazione o prompt. Oltre a una maggiore elaborazione, il codice cancellerà anche il codice non necessario che sta semplicemente trascinando verso il basso il programma e ridurrà la lunghezza del percorso. Allo stesso tempo, gli sviluppatori possono specificare aree che non possono essere modificate, poiché la modifica di alcune parti del codice può causare la sofferenza o l'interruzione del funzionamento dell'intero programma.
Occasionalmente si verifica un fenomeno nel software in cui la codifica cambia senza che lo sviluppatore scriva in alcuna istruzione per farlo. Ciò si verifica normalmente con problemi di rotazione o buffer del software e, mentre la codifica viene modificata, non viene considerato un codice di modifica automatica. Ci sono due ragioni per questo, una è che la modifica non è stata intenzionalmente fatta dallo sviluppatore. Il secondo motivo è che la programmazione automodificante ha lo scopo di migliorare la codifica, mentre i problemi di buffer e marciume degradano la codifica.
Ci sono molti vantaggi nell'avere codice auto-modificante, perché funzionerà costantemente per migliorarsi in base allo stato corrente del computer e ad altri fattori interni. Questo è usato rigorosamente dallo sviluppatore prima che il codice venga venduto o distribuito. Consentendo l'esecuzione costante del codice, consente alla programmazione di correggere se stessa e qualsiasi errore o problema causato dallo sviluppatore durante la creazione del codice. Un altro uso per questo è nei computer con memoria limitata, perché questo codice risponderà a una carenza di memoria riducendo le proprie dimensioni.