IT-lexikon › Programmering › Självmodifierande kod

Självmodifierande kod

Programmering In English → Uppdaterad: 2026-08-08

Program som skriver om sina egna instruktioner medan de körs — på de första lagrade-program-maskinerna en nödvändighet, inte ett fult trick.

Att instruktioner och data delar minne betyder att ett program kan behandla sina egna instruktioner som data och ändra dem under körning. På Manchester Baby och EDSAC omkring 1948 fanns inga indexregister, så för att gå igenom en array skrev programmet helt sonika om adressfältet i sina egna instruktioner, ett steg i taget. Det var vardagsmat, inte fusk.

Tom Kilburns indexregister på Manchester Mark 1 (1949) gjorde tekniken onödig: nu kunde en adress räknas upp i ett hjälpregister utan att röra koden. Kvar blev självmodifierande kod som något man helst undvek — svårt att läsa, omöjligt att lägga i skrivskyddat minne, en mardröm att felsöka. Ändå lever den vidare där den lönar sig: JIT-kompilatorer skriver maskinkod i farten, och skadeprogram muterar sig för att slippa igenkänning.

← Tillbaka till lexikonet