Makro (datateknik)
![]() | Den här artikeln behöver källhänvisningar för att kunna verifieras. (2020-09) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. |
Ett makro är en samling instruktioner som används för att automatisera ofta återkommande och/eller repetitiva arbetsmoment vid användning av datorprogram. Makrot kan vanligen skapas antingen genom en inspelningsfunktion där användaren utför den sekvens av åtgärder som skall sparas eller genom att skript- eller programkod skrivs direkt i ett inbäddat språk som stöds av programmet ifråga.
Typexempel på användningsområden för makron är att i ett ordbehandlingsprogram byta ut en text som med små variationer förekommer på flera ställen i en större grupp av dokument, eller att i ett bildredigeringsprogram ändra format på en hel katalog av bilder. Dokument kan ofta innehålla makron tänkta för att redigera eller använda dokumentet ifråga.
En del språk som används för makron innehåller komplett programspråksfunktionalitet, så att man med dem till exempel kan skriva till filer, skicka e-post och köra externa program. Detta gäller i synnerhet när man som makrospråk valt något mer allmänt programspråk, såsom varianter av Visual Basic i MS Word och LibreOffice eller Lisp i Emacs. Sådan funktionalitet kan lätt användas för trojanska hästar och kräver därför ofta att körandet av makron explicit godkänns eller att den signerats.
Programmeringsmakro
Ett makro är även ett sätt att med ett symboliskt anrop beskriva en grupp av återkommande snarlika programrader. Vanligast är detta förekommande i assemblerspråk, men makron är också en viktig del av infrastrukturen i till exempel C.
En förassemblator (eller förkompilator) som körs före den ordinarie assemblatorn/kompilatorn översätter makroinstruktionen till (en eller) flera instruktionsrader som är begripliga för den ordinarie assemblatorn/kompilatorn, där insatta parametervärden i makrots argument påverkar utseendet – och därmed funktionen – på de genererade programraderna. I vissa fall kan man utesluta en del argument och då används standardvärden som är specificerade i makrots beskrivning (makrodefinitionen).