Skip to main content

Wat is een zelfmodificerende code?

Zelfmodificerende code is een programmeerfilosofie waarin de ontwikkelaar een programma maakt dat zijn eigen codering kan wijzigen wanneer ze worden uitgevoerd.Hoewel de ontwikkelaar parameters kan invoeren voor de zelfmodificerende code, verandert deze meestal en optimaliseert zichzelf zonder interactie.Er zijn enkele computerfenomenen die ervoor zorgen dat codering onbedoeld verandert, maar alleen opzettelijke zelfmodificerende code wordt echt als zelfmodificerend beschouwd.Dit wordt meestal gebruikt door ontwikkelaars om hun codering te verbeteren, omdat het vele malen van de codering het oorspronkelijke ontwerp aanzienlijk kan verbeteren.

Het meest bepalende aspect van zelfmodificerende code is het vermogen om zichzelf ten goede te veranderen.Dit kan alleen worden gedaan wanneer de codering zich klaarmaakt om uit te voeren en wanneer deze zich voorbereidt om uit te voeren.De uitvoerende code moet de huidige software, status en andere factoren van de computer inventariseren, dus dit helpt de code normaal gesproken te herkennen van verwerkingsfouten om zijn eigen verwerking het beste te corrigeren.

Ontwikkelaars stellen soms parameters in voor zelfmodificerende code, zoals corrigerenzichzelf meestal voor prestaties, maar de code zal normaal zichzelf corrigeren zonder interactie of aanwijzingen.Afgezien van de verhoogde verwerking, zal de code ook onnodige code wissen die gewoon het programma naar beneden sleept en het padlengtes verminderen.Tegelijkertijd kunnen ontwikkelaars gebieden specificeren die niet kunnen worden gewijzigd, omdat het wijzigen van sommige delen van de code ertoe kan leiden dat het hele programma lijdt of stopt met werken.

Een fenomeen komt af en toe voor in software waarin de codering verandert zonder dat de ontwikkelaar schrijft inalle instructies om dit te doen.Dit gebeurt normaal gesproken bij software-rot- of bufferproblemen en, hoewel de codering wordt gewijzigd, wordt het niet beschouwd als zelfmodificerende code.Er zijn twee redenen hiervoor, een is dat de verandering niet opzettelijk door de ontwikkelaar wordt aangebracht.De tweede reden is dat zelfmodificerende programmering bedoeld is om de codering te verbeteren, terwijl buffer- en rotproblemen de codering aantasten.

Er zijn veel voordelen aan het hebben van zelfmodificerende code, omdat het voortdurend zal werken om zichzelf te verbeteren op basis van de huidige status van de computeren andere interne factoren.Dit wordt het meest rigoureus gebruikt door de ontwikkelaar voordat de code wordt verkocht of gedistribueerd.Door toe te staan dat de code constant kan worden uitgevoerd, stelt het de programmering in staat zichzelf op te lossen en eventuele fouten of problemen die door de ontwikkelaar worden veroorzaakt tijdens de creatie van de codering.Een ander gebruik hiervoor is in computers met een beperkt geheugen, omdat deze code zal reageren op een geheugentekort door zijn eigen grootte te verminderen.