Mis on isemuutev kood?

Isemuutev kood on programmeerimisfilosoofia, mille kohaselt arendaja loob programmi, mis on võimeline käivitamisel muutma oma kodeeringut. Kuigi arendaja saab isemuutuva koodi jaoks parameetreid sisestada, muudab ja optimeerib see tavaliselt ennast ilma interaktsioonita. Mõned arvutinähtused põhjustavad kodeerimise tahtmatut muutumist, kuid ainult tahtlikult isemuutvat koodi peetakse isemuutvaks. Seda kasutavad arendajad kõige sagedamini oma kodeerimise täiustamiseks, kuna kodeerimise mitu korda käivitamine võib oluliselt parandada algset kujundust.

Isemuutuva koodi kõige määravam aspekt on selle võime ennast paremaks muuta. Seda saab teha ainult siis, kui kodeerimine valmistub täitmiseks ja kui see valmistub käitamiseks. Käivitav kood peab hindama arvuti praegust tarkvara, olekut ja muid tegureid, nii et see aitab tavaliselt koodil töötlusvigu ära tunda, et oma töötlust kõige paremini parandada.

Arendajad määravad mõnikord isemuutuva koodi jaoks parameetreid, näiteks parandavad end peamiselt jõudluse tõttu, kuid tavaliselt parandab kood ennast ilma interaktsiooni või viipadeta. Lisaks suurenenud töötlemisele kustutab kood ka mittevajaliku koodi, mis lihtsalt lohistab programmi alla, ja see vähendab tee pikkust. Samal ajal saavad arendajad määrata valdkonnad, mida ei saa muuta, sest mõne koodi osa muutmine võib põhjustada kogu programmi kannatamise või töötamise lõpetamise.

Tarkvaras esineb aeg-ajalt nähtus, mille puhul kodeering muutub, ilma et arendaja oleks selleks juhiseid kirjutanud. Tavaliselt ilmneb see tarkvara mädanemise või puhvri probleemide korral ja kui kodeerimist muudetakse, ei peeta seda isemuutuvaks koodiks. Sellel on kaks põhjust, millest üks on see, et arendaja ei ole muudatust tahtlikult teinud. Teine põhjus on see, et isemodifitseeriv programmeerimine on mõeldud kodeerimise parandamiseks, samas kui puhver- ja mädaprobleemid halvendavad kodeerimist.

Isemuutuva koodi olemasolul on palju eeliseid, sest see töötab pidevalt, et ennast arvuti hetkeseisundi ja muude sisemiste tegurite põhjal täiustada. Seda kasutab arendaja kõige rangemalt enne koodi müüki või levitamist. Lubades koodil pidevalt töötada, võimaldab see programmeerimisel parandada ennast ja kõiki vigu või probleeme, mida arendaja on kodeerimise loomisel põhjustanud. Teine kasutusvõimalus on piiratud mäluga arvutites, kuna see kood reageerib mälupuudusele, vähendades oma suurust.