El código auto modificable es una filosofía de programación en la que el desarrollador crea un programa que puede alterar su propia codificación cuando se ejecuta. Si bien el desarrollador puede ingresar parámetros para el código de modificación automática, generalmente cambia y se optimiza sin interacción. Hay algunos fenómenos informáticos que hacen que la codificación cambie involuntariamente, pero solo el código que se modifica a sí mismo intencionalmente se considera realmente modificable. Los desarrolladores suelen utilizar esto para mejorar su codificación, ya que ejecutar la codificación muchas veces puede mejorar en gran medida el diseño original.
El aspecto más definitorio del código auto modificable es su capacidad para cambiarse a sí mismo para mejorar. Esto solo se puede hacer cuando la codificación se está preparando para ejecutarse y cuando se está preparando para ejecutarse. El código de ejecución tendrá que hacer un inventario del software actual de la computadora, el estado y otros factores, por lo que normalmente esto ayuda al código a reconocer los errores de procesamiento para corregir mejor su propio procesamiento.
Los desarrolladores a veces establecen parámetros para el código que se modifica automáticamente, como corregirse a sí mismo principalmente para el rendimiento, pero el código normalmente se corregirá solo sin interacción o solicitud. Además de un mayor procesamiento, el código también borrará el código innecesario que simplemente arrastra hacia abajo el programa y disminuirá la longitud de la ruta. Al mismo tiempo, los desarrolladores pueden especificar áreas que no se pueden cambiar, porque alterar algunas partes del código puede hacer que todo el programa sufra o deje de funcionar.
Ocasionalmente ocurre un fenómeno en el software en el que la codificación cambia sin que el desarrollador escriba instrucciones para hacerlo. Esto normalmente ocurre con problemas de búfer o rotura de software y, mientras se cambia la codificación, no se considera código de modificación automática. Hay dos razones para esto, una es que el desarrollador no realiza el cambio intencionalmente. La segunda razón es que la programación auto-modificable está destinada a mejorar la codificación, mientras que los problemas de búfer y descomposición degradan la codificación.
Hay muchos beneficios de tener un código que se modifica automáticamente, ya que trabajará constantemente para mejorar en función del estado actual de la computadora y otros factores internos. El desarrollador lo usa con más rigor antes de vender o distribuir el código. Al permitir que el código se ejecute constantemente, permite que la programación se corrija a sí misma y a cualquier error o problema causado por el desarrollador durante la creación de la codificación. Otro uso para esto es en computadoras con memoria limitada, porque este código responderá a una escasez de memoria reduciendo su propio tamaño.