Co to jest instrukcja makr?
Makropolecenie w programowaniu komputerowym to pojedyncza instrukcja, która po skompilowaniu programu jest zastępowana wstępnie zdefiniowanym blokiem kodu. Termin był pierwotnie stosowany do instrukcji używanych w programowaniu w asemblerze, w których długi, powtarzalny kod był czasem potrzebny do bardzo prostych operacji. Opracowanie makropoleceń było jednym z pierwszych kroków w kierunku stworzenia języka opartego na bibliotece reprezentatywnych funkcji, aby drobne działania mogły być zebrane razem w ramach jednego polecenia w osobnym programie. Biblioteki wczesnych instrukcji makro były najczęściej dostarczane przez producentów sprzętu i oprogramowania, aby pomóc programistom we właściwym używaniu i uzyskiwaniu dostępu do funkcji.
Programiści używali makropoleceń z różnych powodów, ale najczęstsze polegały na zmniejszeniu liczby powtarzających się kodów w programie, wyeliminowaniu możliwości wystąpienia błędów w kodzie makr i zapewnieniu często używanych zestawów instrukcji, aby kilku programistów mogło korzystać z ta sama instrukcja makr. W języku asemblera każdy krok wymagany do osiągnięcia określonego wyniku musi być wyraźnie zapisany. Przykładem może być program, który dodał trzy liczby razem.
Operator dodawania w językach wyższego poziomu jest często brany za pewnik, ale operacja dodawania trzech liczb w języku asemblera wymaga co najmniej sześciu oddzielnych wierszy kodu. Pierwsze dwa wiersze ładują liczby do pól zwanych rejestrami, które faktycznie odpowiadają fizycznym obwodom wewnątrz komputera. Trzeci wiersz dodaje dwa rejestry, a czwarty wiersz przechowuje wynik w innym rejestrze. Piąta linia ładuje ostatnią liczbę, która ma zostać dodana do rejestru, a końcowa instrukcja dodaje poprzedni wynik do trzeciej liczby.
Tę sekwencję operacji można łatwo przekształcić w makropolecenie, więc potrzebny jest tylko jeden wiersz kodu wraz z trzema liczbami, które należy dodać jako parametry. Kiedy program jest ostatecznie kompilowany przez asembler i zamieniany w kod maszynowy, działania zwane przetwarzaniem wstępnym są podejmowane przed złożeniem zestawu. Preprocesor pobiera makropolecenie i parametry i rozwija je do wymaganych wierszy kodu, zastępując parametry reprezentatywnymi symbolami zastępczymi wewnątrz faktycznego makra.
Po powszechnym użyciu makropoleceń wiele powszechnie stosowanych bloków kodu zostanie zmontowanych w biblioteki makropoleceń. Biblioteki te zawierały kilka makr, aby uprościć programowanie w języku asemblera, a także zapewnić spójne wykonywanie niektórych operacji w różnych programach. Szerokie zastosowanie bibliotek makropoleceń ostatecznie doprowadziło do powstania języków wyższego poziomu, które polegały na własnych bibliotekach w celu zapewnienia szerokiej funkcjonalności przy znacznie mniej powtarzalnych wymaganiach programistycznych.