Wat is een macro-instructie?
Een macro-instructie bij computerprogrammering is een enkele instructie die, wanneer een programma wordt gecompileerd, wordt vervangen door een vooraf gedefinieerd codeblok. De term werd oorspronkelijk toegepast op instructies die werden gebruikt bij het programmeren van assemblagetalen, waarin soms lange, repetitieve code nodig was voor zeer eenvoudige bewerkingen. De ontwikkeling van macro-instructies was een van de eerste stappen op weg naar het creëren van een taal op basis van een bibliotheek met representatieve functies, zodat zeer kleine acties konden worden verzameld onder een enkele opdrachtoproep in een afzonderlijk programma. Vroege macro-instructiebibliotheken werden het meest geleverd door de fabrikanten van hardware en software om programmeurs te helpen functies op de juiste manier te gebruiken en te gebruiken.
Programmeurs gebruikten macro-instructies om verschillende redenen, maar de meest voorkomende waren om de hoeveelheid repetitieve code in het programma te verminderen, de mogelijkheid van fouten in de macrocode te elimineren en veelgebruikte instructiesets te bieden, zodat verschillende programmeurs de dezelfde macro-instructie. Onder assemblagetaal moet elke stap die nodig is om een bepaald resultaat te bereiken, expliciet worden geschreven. Een voorbeeld kan een programma zijn dat drie getallen bij elkaar optelt.
De opteloperator in talen op een hoger niveau wordt vaak als vanzelfsprekend beschouwd, maar de bewerking van het toevoegen van drie nummers in assembleertaal vereist ten minste zes afzonderlijke coderegels. De eerste twee regels laden de nummers in velden die registers worden genoemd en die eigenlijk overeenkomen met fysieke circuits in de computer. De derde regel voegt de twee registers toe en een vierde regel slaat het resultaat op in een ander register. De vijfde regel laadt het laatste nummer dat in een register moet worden toegevoegd en de laatste instructie voegt het vorige resultaat toe aan het derde nummer.
Deze reeks bewerkingen kan eenvoudig worden omgezet in een macro-instructie, zodat er slechts één coderegel nodig is, samen met de drie nummers die als parameters moeten worden toegevoegd. Wanneer het programma uiteindelijk door een assembler wordt gecompileerd en in machinecode wordt omgezet, worden acties die voorbewerking worden genoemd, uitgevoerd voordat de assemblage plaatsvindt. De voorprocessor neemt de macro-instructie en parameters en breidt deze uit naar de vereiste coderegels, waarbij de parameters worden vervangen door representatieve tijdelijke aanduidingen binnen de werkelijke macro-code.
Nadat het gebruik van macro-instructies wijdverbreid werd, zouden veel algemeen gebruikte codeblokken worden samengevoegd in macro-instructiebibliotheken. Deze bibliotheken bevatten verschillende macro's om het programmeren in de assembleertaal te vereenvoudigen en ervoor te zorgen dat bepaalde bewerkingen op verschillende manieren op verschillende programma's werden uitgevoerd. Het uitgebreide gebruik van macro-instructiebibliotheken leidde uiteindelijk tot talen van een hoger niveau die afhankelijk waren van hun eigen bibliotheken om uitgebreide functionaliteit te bieden met veel minder repetitieve programmeervereisten.