Kas yra makro instrukcija?

Kompiuterių programavimo makrokomanda yra viena instrukcija, kuri, kai programa sukompiliuojama, pakeičiama iš anksto nustatytu kodo bloku. Iš pradžių šis terminas buvo taikomas instrukcijoms, naudojamoms programuojant asamblėjos kalba, kai labai paprastoms operacijoms kartais prireikdavo ilgo, pasikartojančio kodo. Makrokomandų kūrimas buvo vienas iš pirmųjų žingsnių kuriant kalbą, pagrįstą reprezentacinių funkcijų biblioteka, kad smulkūs veiksmai galėtų būti surinkti vienu komandos iškvietimu atskiroje programoje. Ankstyvąsias makrokomandų bibliotekas dažniausiai tiekdavo aparatinės ir programinės įrangos gamintojai, kad padėtų programuotojams tinkamai naudoti ir pasiekti funkcijas.

Programuotojai naudojo makrokomandas dėl įvairių priežasčių, tačiau dažniausiai buvo siekiama sumažinti pasikartojančio kodo skaičių programoje, pašalinti makrokode klaidų galimybę ir pateikti dažniausiai naudojamus instrukcijų rinkinius, kad keli programuotojai galėtų naudoti ta pati makro instrukcija. Asamblėjos kalba kiekvienas žingsnis, reikalingas tam tikram rezultatui pasiekti, turi būti aiškiai parašytas. Pavyzdys galėtų būti programa, kuri sudėjo tris skaičius.

Papildymo operatorius aukštesnio lygio kalbomis dažnai laikomas savaime suprantamu dalyku, tačiau norint pridėti tris skaičius asamblėjos kalba, reikia bent šešių atskirų kodo eilučių. Pirmosiose dviejose eilutėse skaičiai įkeliami į laukus, vadinamus registrais, kurie iš tikrųjų atitinka kompiuterio viduje esančias fizines grandines. Trečioje eilutėje pridedami du registrai, o ketvirtoje eilutėje rezultatas išsaugomas kitame registre. Penktoje eilutėje įkeliamas paskutinis skaičius, kurį reikia įtraukti į registrą, o galutinis sakinys prideda ankstesnį rezultatą prie trečiojo skaičiaus.

Šią operacijų seką galima lengvai paversti makrokomandomis, todėl reikia tik vienos kodo eilutės ir trijų skaičių, kuriuos reikia pridėti kaip parametrus. Kai programa pagaliau sukompiliuojama surinkėjo ir paverčiama mašininiu kodu, prieš pradedant surinkimą atliekami veiksmai, vadinami išankstiniu apdorojimu. Išankstinis procesorius paima makrokomandą ir parametrus bei išplečia jas į reikiamas kodo eilutes, pakeičiant parametrus reprezentatyviosiomis vietos rezervavimo žymomis faktiniame makrokode.

Po to, kai makrokomandų naudojimas tapo plačiai paplitęs, daugelis dažniausiai naudojamų kodų blokų buvo surinkti į makrokomandų bibliotekas. Šiose bibliotekose buvo keletas makrokomandų, padedančių supaprastinti programavimą asamblėjos kalba ir užtikrinti, kad tam tikros operacijos įvairiose programose būtų atliekamos nuosekliai. Platus makrokomandų bibliotekų naudojimas galiausiai paskatino aukštesnio lygio kalbas, kurios rėmėsi savo bibliotekomis, kad užtikrintų platų funkcionalumą su daug mažiau pasikartojančių programavimo reikalavimų.