Was ist der Unterschied zwischen einem Makro und einem Skript?

9

Sind nicht beide nur eine Reihe von Anweisungen, die von einem Dolmetscher ausgeführt werden? (im Gegensatz zu einem vollwertigen Programm, das auf einem Computersystem ausgeführt wird (ausgeführt wird)?

Quora Feans
quelle

Antworten:

9

Grundsätzlich ist der Unterschied nur ein Grad. Ein Skript ist in der Regel viel formaler definiert, mit einer genau definierten Skriptsprache, während ein Makro normalerweise einfacher und ad-hoc ist. Makros werden häufig "aufgezeichnet", indem einem Programm mitgeteilt wird, "alles zu sehen, was ich tue" und dann die Aktion ausgeführt wird, während Skripte im Allgemeinen als Text in der Skriptsprache eingegeben werden.

Mason Wheeler
quelle
4
Es sei denn, das OP fragt nach Makros wie C-Präprozessor-Makros oder LISP-Makros.
FrustratedWithFormsDesigner
1
@Frustrated: Ja, aber aus dem Kontext sieht es nicht so aus, als würde er danach fragen.
Mason Wheeler
6

Makros gibt es in verschiedenen Geschmacksrichtungen.

Die ursprüngliche Art waren Makros in Assemblersprache, in denen eine Gruppe von Anweisungen benannt werden konnte und jedes Mal, wenn der Name verwendet wurde, der Name durch die Anweisungen ersetzt wurde.

C und C ++ haben auch Makros, die auf diese Weise funktionieren.

Aber wie bei den meisten Dingen in der IT, warum einen Begriff oder eine Bedeutung haben, wenn wir die Dinge verwirrender machen können? In einigen Umgebungen (beginnend mit MS Word, glaube ich) wurden "Makros" eingeführt, bei denen es sich um aufgezeichnete Aktionen handelte.

Es gibt also zwei Arten von Makros. Der erste wird durch den Namen ersetzt und dann kompiliert. Die zweite wird normalerweise zur Laufzeit von der Umgebung interpretiert.

andy256
quelle
4

Makro

Makros werden häufig in Softwareanwendungen verwendet und sind ursprünglich als Werkzeug zum Zuordnen von Benutzereingaben zu einem anderen Satz von Benutzerausgaben entstanden. Der Schlüsselaspekt hierbei ist die Änderung der Benutzereingabe / -ausgabe auf Anwendungsebene. Da Benutzereingaben in der Regel mit Tastaturen, Mäusen und anderen Geräten zusammenhängen. Die vom Makro geänderte Ausgabe wurde häufig zuvor von einem dieser Geräte aufgezeichnet. Es gibt auch Makros, die vom Benutzer geschrieben werden können, aber das Ziel ist oft, eine gewünschte Ausgabe zu erzielen.

Skript

Wenn Makros zur Anwendung ausgegeben werden, dann Skripte sind Anwendungsautomatisierung . Skripte sind häufig eine anwendungsspezifische Programmiersprache, die Aufgaben für den Benutzer automatisiert. Der Schlüssel hier ist die Rolle des Benutzers als Programmierer und die Tatsache, dass Benutzer keine Programmierer sind. Wenn Sie Skriptsprachen als solche kategorisieren, die nicht kompiliert, analysiert und einfach zu verwenden sind, gibt es viele Sprachen, die diesen Anforderungen entsprechen. Ich behaupte, dass Skriptsprachen für Anwendungsbenutzer am einfachsten sind, um die Software mit den geringsten Programmierkenntnissen zu automatisieren. So sollten sie als Skripte kategorisiert werden. Alles, was spezielle Kenntnisse außerhalb des Anwendungsbereichs erfordert, ist nur ein Programmierwerkzeug.

Reactgular
quelle