Co je to Self-Modifying Code?
Self-modifikující kód je programovací filozofie, ve které vývojář vytváří program, který je schopen změnit své vlastní kódování, když je spuštěno. I když vývojář může zadat parametry pro samoobslužný kód, obvykle se změní a optimalizuje bez interakce. Existují některé počítačové jevy, které způsobují neúmyslné změny kódování, ale pouze úmyslný samo-modifikující kód je skutečně považován za samo-modifikující. To je nejčastěji používáno vývojáři ke zlepšení jejich kódování, protože spuštění kódování mnohokrát může výrazně zlepšit původní design.
Nejdefinovanějším aspektem self-modifikujícího kódu je jeho schopnost změnit se k lepšímu. To lze provést pouze tehdy, když je kódování připraveno ke spuštění a když se připravuje ke spuštění. Prováděcí kód bude muset posoudit současný software, stav a další faktory počítače, takže to obvykle pomůže kódu rozpoznat chyby zpracování, aby se co nejlépe opravilo jeho vlastní zpracování.
Vývojáři někdy nastavují parametry samoobslužného kódu, například opravují se většinou kvůli výkonu, ale kód se normálně opraví bez interakce nebo výzvy. Kromě zvýšeného zpracování kód také vymaže nepotřebný kód, který právě přetahuje program a zkracuje délky cesty. Zároveň mohou vývojáři určit oblasti, které nelze změnit, protože změna některých částí kódu může způsobit, že celý program utrpí nebo přestane fungovat.
Jev je občas vyskytující se v softwaru, ve kterém se kódování změní, aniž by vývojář zapisoval jakékoli pokyny, aby tak učinil. K tomu obvykle dochází u problémů se softwarovou hnilobou nebo vyrovnávací pamětí a zatímco se mění kódování, nepovažuje se za samoobslužný kód. Existují dva důvody, jedním z nich je, že vývojář úmyslně změnu neprovedl. Druhým důvodem je to, že samo-modifikující programování má zlepšit kódování, zatímco problémy s bufferem a rotem degradují kódování.
Vlastní úpravy kódu má mnoho výhod, protože se bude neustále zlepšovat na základě aktuálního stavu počítače a dalších vnitřních faktorů. To je nejpřesněji používáno vývojářem před prodejem nebo distribucí kódu. Umožněním trvalého běhu kódu umožňuje programování, aby se opravil sám a všechny chyby nebo problémy, které jsou způsobeny vývojářem během vytváření kódování. Další využití je v počítačích s omezenou pamětí, protože tento kód bude reagovat na nedostatek paměti snížením své vlastní velikosti.