Makro – Wikipedia, wolna encyklopedia
Makro, makropolecenie – zestaw rozkazów realizujący algorytm komputerowy przeznaczony do wykonywania przez określoną aplikację (edytor, arkusz kalkulacyjny, program graficzny) zwykle w celu automatyzacji pewnych czynności lub dokonania zmian w dokumentach bez interakcji z użytkownikiem. Makra pisane są zwykle w dedykowanym skryptowym języku programowania wykonywanym przez interpreter wbudowany w daną aplikację, w której to zostały uruchomione. Praktycznie prawie każda aplikacja umożliwiająca korzystanie z makr posiada swój własny skryptowy język programowania.
Brak spójnej taksonomii programów komputerowych uniemożliwia ścisłe określenie różnicy pomiędzy makrami a np. skryptami czy kodem binarnym będącym wynikiem JIT i obsługiwanym przez np. interpretery Java. Można stwierdzić, że np. program w Javie jest makrem dla interpretera Javy, chociaż w praktyce nigdy nie używa się takich określeń.
Być może właściwym określeniem jest następująca definicja: makra są niesamodzielnymi programami i w celu wykonania muszą być uruchamiane w środowisku innego programu, czym różnią się od skryptów oraz programów komputerowych, które są uruchamiane w środowisku powłoki systemu operacyjnego, po uruchomieniu stają się nowym procesem w tym systemie i tym samym uzyskują niezależny dostęp do procesora oraz zostaje im przydzielona prywatna pamięć operacyjna.
Nieco inne znaczenie ma pojęcie makra w przypadku makroasemblerów. W tym sensie są to fragmenty programu identyfikowane poprzez etykiety, które można wstawiać w odpowiednie miejsca kodu źródłowego, a które podczas prekompilacji są zamieniane na odpowiadające im fragmenty kodu asemblera.
Przykłady
[edytuj | edytuj kod]- w edytorze Emacs uruchamiamy makro w języku Lisp, które zmienia formatowanie kodu HTML i sprawia, że kod wyświetlany jest z użyciem kolorów i formatowania (wcięcia, akapity) ułatwiających edycję i zwiększających czytelność kodu
- w arkuszu kalkulacyjnym uruchamiamy makro w języku Visual Basic for Applications, które kopiuje zawartość pewnego zakresu komórek arkusza do innych pól arkusza oraz wylicza np. wartość 21% z sumy kopiowanych danych.