Skip to main content

Vad är en självmodifierande kod?

Självmodifierande kod är en programmeringsfilosofi där utvecklaren gör ett program som kan ändra sin egen kodning när den körs.Medan utvecklaren kan ange parametrar för självmodifierande kod, ändras den vanligtvis och optimerar sig utan interaktion.Det finns vissa datorfenomen som får kodningen att förändras oavsiktligt, men endast avsiktlig självmodifierande kod anses verkligen vara självmodifierande.Detta används oftast av utvecklare för att förbättra sin kodning, eftersom att köra kodningen många gånger kan förbättra den ursprungliga designen.

Den mest avgörande aspekten av självmodifierande kod är dess förmåga att ändra sig själv till det bättre.Detta kan endast göras när kodningen gör sig redo att köra och när den förbereder sig för att köra.Exekveringskoden måste ta reda på datorns nuvarande programvara, tillstånd och andra faktorer, så detta hjälper normalt att koden känner igen behandlingsfel för att bäst korrigera sin egen behandling.

Utvecklare ställer ibland parametrar för självmodifierande kod, till exempel att korrigerasig själva mest för prestanda, men koden kommer normalt att korrigera sig utan interaktion eller uppmaning.Bortsett från ökad bearbetning kommer koden också att radera onödig kod som bara drar ner programmet och det kommer att minska banlängderna.Samtidigt kan utvecklare specificera områden som inte kan ändras, eftersom att ändra vissa delar av koden kan få hela programmet att drabbas eller sluta fungera.

Ett fenomen förekommer ibland i programvara där kodningen ändras utan att utvecklaren skriver iEventuella instruktioner för att göra det.Detta förekommer normalt med programvarurot eller buffertproblem, och även om kodningen ändras anses det inte vara självmodifierande kod.Det finns två skäl till detta, en är att förändringen inte avsiktligt görs av utvecklaren.Det andra skälet är att självmodifierande programmering är tänkt att förbättra kodningen, medan buffert- och ruttproblem försämrar kodningen.

Det finns många fördelar med att ha självmodifierande kod, eftersom den ständigt kommer att fungera för att förbättra sig baserat på datorns nuvarande tillståndoch andra interna faktorer.Detta används mest strikt av utvecklaren innan koden säljs eller distribueras.Genom att låta koden köra ständigt, gör det möjligt för programmeringen att fixa sig själv och eventuella fel eller problem som orsakas av utvecklaren under kodningens skapande.En annan användning för detta är i datorer med begränsat minne, eftersom den här koden kommer att svara på en minnesbrist genom att minska sin egen storlek.