Zelfmodificerende code
Een programma dat zijn eigen instructies herschrijft terwijl het draait: op de eerste machines met opgeslagen programma een noodzaak, geen vieze truc.
Zodra instructies en data hetzelfde geheugen delen, kan een programma zijn eigen instructies als data behandelen en halverwege de run wijzigen. Op de Manchester Baby en EDSAC rond 1948 bestonden geen indexregisters, dus om door een array te lopen herschreef een programma stap voor stap het adresveld van zijn eigen instructies. Het was routine, geen goocheltruc.
Tom Kilburns indexregister in de Manchester Mark 1 (1949) maakte de techniek overbodig: een adres kon nu in een reserveregister worden opgehoogd zonder de code aan te raken. Zelfmodificerende code werd iets om te vermijden: moeilijk leesbaar, onmogelijk in alleen-lezengeheugen te plaatsen en een nachtmerrie om te debuggen. Toch overleeft ze waar ze loont: JIT-compilers genereren on the fly machinecode, en malware muteert zichzelf om herkenning te ontlopen.