Was ist ein sich selbst ändernder Code?
Selbstmodifizierender Code ist eine Programmierphilosophie, bei der der Entwickler ein Programm erstellt, das seine eigene Codierung bei der Ausführung ändern kann. Während der Entwickler Parameter für den sich selbst ändernden Code eingeben kann, ändert und optimiert er sich normalerweise ohne Interaktion. Es gibt einige Computerphänomene, die dazu führen, dass sich die Codierung unbeabsichtigt ändert, aber nur absichtlich selbstmodifizierender Code wird tatsächlich als selbstmodifizierend betrachtet. Dies wird am häufigsten von Entwicklern verwendet, um ihre Codierung zu verbessern, da das mehrfache Ausführen der Codierung das ursprüngliche Design erheblich verbessern kann.
Der wichtigste Aspekt des selbstmodifizierenden Codes ist seine Fähigkeit, sich selbst zum Besseren zu verändern. Dies ist nur möglich, wenn die Codierung zur Ausführung bereit ist und sich auf die Ausführung vorbereitet. Der ausführende Code muss eine Bestandsaufnahme der aktuellen Software, des Status und anderer Faktoren des Computers durchführen, sodass der Code normalerweise Verarbeitungsfehler erkennt, um seine eigene Verarbeitung am besten zu korrigieren.
Entwickler legen manchmal Parameter für sich selbst ändernden Code fest, z. B. für die Selbstkorrektur, aber der Code korrigiert sich normalerweise ohne Interaktion oder Aufforderung. Abgesehen von der erhöhten Verarbeitung löscht der Code auch nicht benötigten Code, der nur das Programm herunterzieht, und verringert die Pfadlängen. Gleichzeitig können Entwickler Bereiche angeben, die nicht geändert werden können, da das gesamte Programm leiden oder nicht mehr funktionieren kann, wenn bestimmte Teile des Codes geändert werden.
In Software tritt gelegentlich ein Phänomen auf, bei dem sich die Codierung ändert, ohne dass der Entwickler Anweisungen dazu schreibt. Dies tritt normalerweise bei Software-Rot- oder Pufferproblemen auf, und während die Codierung geändert wird, wird sie nicht als selbstmodifizierender Code betrachtet. Dafür gibt es zwei Gründe, einer ist, dass die Änderung nicht absichtlich vom Entwickler vorgenommen wird. Der zweite Grund ist, dass die selbstmodifizierende Programmierung die Codierung verbessern soll, während Puffer- und Rot-Probleme die Codierung verschlechtern.
Selbstmodifizierender Code bietet viele Vorteile, da er sich basierend auf dem aktuellen Status des Computers und anderen internen Faktoren ständig verbessert. Dies wird vom Entwickler am rigorosesten angewendet, bevor der Code verkauft oder verteilt wird. Indem der Code ständig ausgeführt werden kann, kann die Programmierung sich selbst und alle Fehler oder Probleme beheben, die vom Entwickler während der Erstellung des Codes verursacht wurden. Eine andere Verwendung hierfür sind Computer mit begrenztem Arbeitsspeicher, da dieser Code auf einen Speichermangel reagiert, indem er seine eigene Größe verringert.