Jaka jest różnica między makrem a skryptem?

10

Czy to nie tylko zestaw instrukcji wykonywanych przez jakiegoś tłumacza? (w przeciwieństwie do pełnoprawnego programu, który działa (zostaje wykonany) w jakimś systemie komputerowym?

Quora Feans
źródło

Odpowiedzi:

10

Zasadniczo różnica dotyczy tylko stopnia. Skrypt jest o wiele bardziej formalnie zdefiniowany, z dobrze zdefiniowanym językiem skryptowym, podczas gdy makro jest zwykle czymś prostszym i ad hoc. Makra są często „nagrywane”, mówiąc programowi „obserwuj wszystko, co robię”, a następnie wykonując akcję, podczas gdy skrypty są zazwyczaj wprowadzane jako tekst w języku skryptowym.

Mason Wheeler
źródło
4
Chyba że OP pyta o makra, takie jak makra preprocesora C lub makra LISP.
FrustratedWithFormsDesigner
1
@ Frustrated: Tak, ale z kontekstu nie wygląda na to, o co pyta.
Mason Wheeler,
7

Makra występują w różnych smakach.

Oryginalnym rodzajem były makra w języku asemblera, w których można było nazwać grupę instrukcji i za każdym razem, gdy nazwa była używana, instrukcje zastępowano nazwą.

C i C ++ również mają makra, które działają w ten sposób.

Ale jak w przypadku większości rzeczy w IT, dlaczego jedno lub jedno znaczenie oznacza, kiedy możemy sprawić, że sprawy będą bardziej mylące? Tak więc niektóre środowiska (począwszy od MS Word, jak sądzę) wprowadziły „makra”, które były zarejestrowanym zestawem działań.

Istnieją więc dwa rodzaje makr. Pierwszy zastępuje nazwę, a następnie kompiluje. Drugi jest zazwyczaj interpretowany w środowisku wykonawczym przez środowisko.

andy256
źródło
4

Makro

Makra są powszechnie używane w aplikacjach i powstały jako narzędzie do mapowania danych wejściowych użytkownika na inny zestaw danych wyjściowych użytkownika. Kluczowym aspektem jest tu zmiana wejściem / wyjściem na poziomie aplikacji. Ponieważ dane wprowadzane przez użytkowników są zwykle powiązane z klawiaturami, myszą i innymi urządzeniami. Wyjście zmienione przez makro było często wcześniej rejestrowane przez jedno z tych urządzeń. Istnieją również makra, które może napisać użytkownik, ale często celem jest uzyskanie pożądanego wyniku.

Scenariusz

Jeśli makra mają pochodzić z danych wyjściowych aplikacji, wówczas skrypty dotyczą automatyzacji aplikacji . Skrypty są często specyficznym dla aplikacji językiem programowania, który automatyzuje zadania dla użytkownika. Kluczem tutaj jest rola użytkownika jako programisty oraz fakt, że użytkownicy nie są programistami. Jeśli kategoryzujesz języki skryptowe jako te, które się nie kompilują, są analizowane i łatwe w użyciu, istnieje wiele języków, które spełniają te wymagania. Twierdzę, że języki skryptowe są najłatwiejszymi dla użytkowników aplikacji do automatyzacji oprogramowania przy minimalnej wiedzy programistycznej. W ten sposób należy je zaklasyfikować jako skrypty. Wszystko, co wymaga specjalistycznej wiedzy poza domeną aplikacji, jest tylko narzędziem do programowania.

Reactgular
źródło