Vad är en makroinstruktion?
En makroinstruktion i datorprogrammering är en enda instruktion som, när ett program kompileras, ersätts av ett fördefinierat kodblock. Termen användes ursprungligen på instruktioner som användes i programmeringsspråk för montering, i vilken lång, repetitiv kod ibland behövdes för mycket enkla operationer. Utvecklingen av makroinstruktioner var ett av de första stegen mot att skapa ett språk baserat på ett bibliotek med representativa funktioner så att små handlingar kunde samlas in under ett enda kommandosamtal i ett separat program. Tidiga makroinstruktionsbibliotek levererades oftast av tillverkarna av hårdvara och mjukvara för att hjälpa programmerare att använda och komma åt funktioner på rätt sätt.
Programmerare använde makroinstruktioner av olika skäl, men de vanligaste var att minska mängden repetitiva koder i programmet, eliminera risken för fel inom makrokoden och tillhandahålla vanliga instruktionsuppsättningar så att flera programmerare skulle kunna använda samma makroinstruktion. Under monteringsspråk måste varje steg som krävs för att uppnå ett visst resultat uttryckligen skrivas. Ett exempel kan vara ett program som lägger till tre nummer tillsammans.
Tilläggsoperatören på språk på högre nivå tas ofta för givet, men funktionen att lägga till tre siffror på monteringsspråk kräver minst sex separata kodrader. De två första linjerna laddar siffrorna i fält som kallas register som faktiskt motsvarar fysiska kretsar inuti datorn. Den tredje raden lägger till de två registren och en fjärde rad lagrar resultatet i ett annat register. Den femte raden laddar det sista numret som ska läggas till i ett register, och det slutliga uttalandet lägger till det föregående resultatet till det tredje numret.
Denna sekvens av operationer kan enkelt förvandlas till en makroinstruktion så att endast en kodrad behövs, tillsammans med de tre siffrorna som ska läggas till som parametrar. När programmet slutligen sammanställs av en monterare och förvandlas till maskinkod, vidtas åtgärder som kallas förbehandling innan montering sker. Förprocessorn tar makroinstruktionen och parametrarna och expanderar den i de erforderliga kodraderna och ersätter parametrarna för representativa platshållare i den faktiska makrokoden.
Efter att makroinstruktionsanvändningen blev utbredd skulle många vanligt använda kodblock samlas in i makroinstruktionsbibliotek. Dessa bibliotek innehöll flera makron för att förenkla programmering på monteringsspråk samt för att säkerställa att vissa operationer utfördes på ett konsekvent sätt över olika program. Den omfattande användningen av makroinstruktionsbibliotek ledde så småningom till språk på högre nivå som förlitade sig på sina egna bibliotek för att ge omfattande funktionalitet med mycket mindre repetitiva programmeringskrav.