Kas yra savaime besikeičiantis kodas?

Savaime besikeičiantis kodas yra programavimo filosofija, pagal kurią kūrėjas sukuria programą, kuri gali pakeisti savo kodavimą, kai ji vykdoma. Nors kūrėjas gali įvesti savaime besikeičiančio kodo parametrus, jis dažniausiai keičiasi ir optimizuojasi pats be sąveikos. Yra keletas kompiuterinių reiškinių, dėl kurių kodavimas keičiasi netyčia, tačiau tik tyčinis savaiminio modifikavimo kodas iš tikrųjų laikomas savaime keičiančiu. Tai dažniausiai naudoja kūrėjai norėdami patobulinti savo kodavimą, nes daug kartų paleidus kodavimą galima žymiai pagerinti originalų dizainą.

Labiausiai apibrėžiantis savaiminio modifikavimo kodo aspektas yra jo gebėjimas keisti save į gerąją pusę. Tai galima padaryti tik tada, kai kodavimas ruošiamas vykdyti ir kai jis ruošiamasi paleisti. Vykdomasis kodas turės įvertinti esamą kompiuterio programinę įrangą, būseną ir kitus veiksnius, todėl tai paprastai padeda kodui atpažinti apdorojimo klaidas, kad būtų galima geriausiai ištaisyti savo apdorojimą.

Kūrėjai kartais nustato savaime besikeičiančio kodo parametrus, pvz., dažniausiai taiso save dėl našumo, tačiau kodas paprastai taisosi pats be sąveikos ar raginimo. Be didesnio apdorojimo, kodas taip pat ištrins nereikalingą kodą, kuris tiesiog tempia programą, ir sumažins kelio ilgį. Tuo pačiu metu kūrėjai gali nurodyti sritis, kurių keisti negalima, nes pakeitus kai kurias kodo dalis gali nukentėti visa programa arba nustoti veikti.

Retkarčiais programinėje įrangoje pasitaiko reiškinys, kai keičiasi kodavimas, kūrėjui neparašant jokių nurodymų tai padaryti. Paprastai tai įvyksta su programinės įrangos puvimo ar buferio problemomis ir, kol keičiamas kodavimas, tai nelaikoma savaime besikeičiančiu kodu. Tam yra dvi priežastys, viena iš jų yra ta, kad kūrėjas tyčia nepakeitė. Antroji priežastis yra ta, kad savaime besikeičiantis programavimas skirtas pagerinti kodavimą, o buferio ir puvimo problemos blogina kodavimą.

Savaime besikeičiančio kodo turėjimas turi daug privalumų, nes jis nuolat tobulės pagal esamą kompiuterio būseną ir kitus vidinius veiksnius. Tai griežčiausiai naudoja kūrėjas prieš parduodant ar platinant kodą. Leisdamas kodui veikti nuolat, jis leidžia programavimui ištaisyti save ir visas klaidas ar problemas, kurias kūrėjas sukelia kodavimo kūrimo metu. Kitas naudojimas yra ribotos atminties kompiuteriuose, nes šis kodas reaguos į atminties trūkumą sumažindamas savo dydį.