Was ist eine Makroanweisung?
Eine Makroanweisung in der Computerprogrammierung ist eine einzelne Anweisung, die beim Kompilieren eines Programms durch einen vordefinierten Codeblock ersetzt wird. Der Begriff wurde ursprünglich auf Anweisungen angewendet, die in der Assembler-Programmierung verwendet wurden, in der manchmal langer, sich wiederholender Code für sehr einfache Vorgänge benötigt wurde. Die Entwicklung von Makrobefehlen war einer der ersten Schritte zur Erstellung einer Sprache, die auf einer Bibliothek repräsentativer Funktionen basiert, sodass winzige Aktionen unter einem einzigen Befehlsaufruf in einem separaten Programm zusammengefasst werden können. Frühe Makroanweisungsbibliotheken wurden am häufigsten von Hard- und Softwareherstellern bereitgestellt, um Programmierern die korrekte Verwendung und den korrekten Zugriff auf Funktionen zu erleichtern.
Programmierer verwendeten Makrobefehle aus verschiedenen Gründen. Am häufigsten wurde jedoch die Menge des sich wiederholenden Codes im Programm reduziert, die Möglichkeit von Fehlern im Makrocode beseitigt und häufig verwendete Befehlssätze bereitgestellt, damit mehrere Programmierer den Code verwenden können gleiche Makroanweisung. In der Assemblersprache muss jeder einzelne Schritt, der zum Erreichen eines bestimmten Ergebnisses erforderlich ist, explizit geschrieben werden. Ein Beispiel könnte ein Programm sein, das drei Zahlen addiert.
Der Additionsoperator in übergeordneten Sprachen wird häufig als selbstverständlich angesehen, für das Hinzufügen von drei Zahlen in Assemblersprache sind jedoch mindestens sechs separate Codezeilen erforderlich. Die ersten beiden Zeilen laden die Zahlen in Felder, die als Register bezeichnet werden und den physischen Schaltkreisen im Computer entsprechen. Die dritte Zeile addiert die beiden Register und eine vierte Zeile speichert das Ergebnis in einem anderen Register. In der fünften Zeile wird die letzte hinzuzufügende Nummer in ein Register geladen, und in der abschließenden Anweisung wird das vorherige Ergebnis zur dritten Nummer hinzugefügt.
Diese Folge von Operationen kann leicht in eine Makroanweisung umgewandelt werden, so dass nur eine Codezeile zusammen mit den drei als Parameter hinzuzufügenden Zahlen benötigt wird. Wenn das Programm schließlich von einem Assembler kompiliert und in Maschinencode umgewandelt wird, werden als Vorverarbeitung bezeichnete Aktionen ausgeführt, bevor die Assembly platziert wird. Der Vorprozessor nimmt die Makrobefehle und -parameter und erweitert sie in die erforderlichen Codezeilen, wobei die Parameter durch repräsentative Platzhalter innerhalb des eigentlichen Makrocodes ersetzt werden.
Nachdem sich die Verwendung von Makrobefehlen verbreitet hatte, wurden viele häufig verwendete Codeblöcke zu Makrobefehlsbibliotheken zusammengefasst. Diese Bibliotheken enthielten mehrere Makros, um die Programmierung in Assemblersprache zu vereinfachen und sicherzustellen, dass bestimmte Vorgänge in verschiedenen Programmen auf konsistente Weise ausgeführt wurden. Die umfangreiche Verwendung von Makroanweisungsbibliotheken führte schließlich zu höheren Sprachen, die sich auf ihre eigenen Bibliotheken stützten, um umfangreiche Funktionen mit weniger sich wiederholenden Programmieranforderungen bereitzustellen.