Makro-(Informatik)

Ein Makro (vom Griechen  für "den großen" oder "das weite") in der Informatik ist eine Regel oder Muster, das angibt, wie eine bestimmte Eingangsfolge (häufig eine Folge von Charakteren) zu einer Produktionsfolge (auch häufig eine Folge von Charakteren) gemäß einem definierten Verfahren kartografisch dargestellt werden sollte. Der kartografisch darstellende Prozess, der realisiert (verwandelt sich) ein Makro in eine spezifische Produktionsfolge ist als Makrovergrößerung bekannt. Eine Möglichkeit, um Makros zu schreiben, kann als ein Teil einer Softwareanwendung oder als ein Teil einer Programmiersprache zur Verfügung gestellt werden. Im ehemaligen Fall werden Makros verwendet, um Aufgaben mit der weniger wiederholenden Anwendung zu machen. Im letzten Fall sind sie ein Werkzeug, das einem Programmierer erlaubt, Codewiedergebrauch zu ermöglichen oder sogar bereichsspezifische Sprachen zu entwerfen.

Der Begriff wird gebraucht, um dem Programmierer, einer Folge von Recheninstruktionen als eine einzelne Programm-Behauptung bereitzustellen, die Programmieraufgabe weniger langweilig und weniger fehlbar machend. (So werden sie "Makros" genannt, weil ein großer Block des Codes von einer kleinen Folge von Charakteren ausgebreitet werden kann). Makros erlauben häufig Stellungs- oder Schlüsselwort-Rahmen, die diktieren, was das bedingte Assemblerprogramm erzeugt und verwendet worden ist, um komplette Programme oder Programm-Gefolge gemäß solchen Variablen wie Betriebssystem, Plattform oder andere Faktoren zu schaffen. Der Begriff ist "auf Makroinstruktion" zurückzuführen, und solche Vergrößerungen wurden im Erzeugen des Zusammenbau-Sprachcodes ursprünglich verwendet.

Tastatur und Maus-Makros

Tastatur-Makros und Maus-Makros erlauben kurzen Folgen von Anschlägen und Maus-Handlungen, in anderen umgestaltet, gewöhnlich, Folgen von Anschlägen und Maus-Handlungen zeitraubender zu werden. Auf diese Weise können oft verwendete oder wiederholende Folgen von Anschlägen und Maus-Bewegungen automatisiert werden. Getrennte Programme, um diese Makros zu schaffen, werden Makrorecorder genannt.

Während der 1980er Jahre waren Makroprogramme - ursprünglich SmartKey, dann SuperKey, KeyWorks, Pro-Schlüssel - zuerst als ein Mittel sehr populär, Drehbuch dann für eine Vielfalt von Benutzereingangsaufgaben automatisch zu formatieren. Diese Programme haben auf dem TSR basiert (Enden Sie und bleiben Sie ortsansässig), Verfahrensweise und angewandt auf den ganzen Tastatur-Eingang, ganz gleich in dem Zusammenhang es vorgekommen ist. Sie sind einigermaßen ins Veralten im Anschluss an das Advent der Maus-gesteuerten Benutzerschnittstelle und die Verfügbarkeit der Tastatur und Maus-Makros in Anwendungen wie Textverarbeitungsprogramme und Spreadsheets gefallen, es möglich machend, mit der Anwendung empfindliche Tastatur-Makros zu schaffen.

Tastatur-Makros sind in neueren Zeiten als eine Methode lebendig geworden, die Wirtschaft des massiv Mehrfachabspiellaufwerks Rolle spielenden Online-Spiels (MMORPG) s auszunutzen. Durch das unermüdliche Durchführen eines langweiligen, wiederholenden, aber riskieren niedrig Handlung, ein Spieler, der ein Makro führt, kann einen großen Betrag der Währung oder Mittel des Spiels verdienen. Diese Wirkung ist noch größer, wenn ein Makroverwenden-Spieler vielfache Rechnungen gleichzeitig operiert, oder die Rechnungen für eine große Zeitdauer jeden Tag operiert. Da dieses Geld ohne menschliches Eingreifen erzeugt wird, kann es die Wirtschaft des Spiels drastisch umwerfen. Deshalb ist der Gebrauch von Makros eine Übertretung des TOS oder EULA vom grössten Teil von MMORPGs, und Verwalter von MMORPGs kämpfen mit einem dauernden Krieg, um Makrobenutzer zu erkennen und zu bestrafen.

Anwendungsmakros und scripting

Tastatur und Maus-Makros, die mit eingebauten Makroeigenschaften einer Anwendung geschaffen werden, werden manchmal Anwendungsmakros genannt. Sie werden geschaffen, indem sie die Folge einmal ausführen und die Anwendung die Handlungen registrieren lassen. Eine zu Grunde liegende Makroprogrammiersprache, meistens eine scripting Sprache, mit dem direkten Zugang zu den Eigenschaften der Anwendung können auch bestehen.

Der Textaufbereiter der Programmierer Emacs (kurz, um Makros" "zu editieren), folgt dieser Idee zu einem Beschluss. Tatsächlich wird der grösste Teil des Redakteurs aus Makros gemacht. Emacs wurde als eine Reihe von Makros auf der Redigieren-Sprache TECO ursprünglich ausgedacht; es wurde später in die Dialekte des Lispelns getragen.

Der Textaufbereiter eines anderen Programmierers, Schwung (ein Nachkomme von vi), hat auch volle Durchführung von Makros. Es kann in ein (Makro-) Register registrieren, was eine Person Typen auf der Tastatur und es wiedergespielt oder gerade wie VBA Makros für Microsoft Office editiert werden kann. Schwung hat auch eine scripting Sprache genannt Vimscript, um Makros zu schaffen.

Visuell Grundlegend für Anwendungen (VBA) ist eine Programmiersprache, die in Microsoft Office und einige andere Anwendungen eingeschlossen ist. Jedoch hat sich seine Funktion davon entwickelt und die Makrosprachen ersetzt, die in einige dieser Anwendungen ursprünglich eingeschlossen wurden.

Makrovirus

VBA hat Zugang zu den meisten Windows-Systemanrufen von Microsoft und führt durch, wenn Dokumente geöffnet werden. Das macht es relativ leicht, Computerviren in VBA zu schreiben, der allgemein als Makroviren bekannt ist. Mitte-zu-spät der 1990er Jahre ist das einer der allgemeinsten Typen des Computervirus geworden. Jedoch, während des Endes der 1990er Jahre und bis heute, hat Microsoft geflickt und ihre Programme aktualisiert. Außerdem wirken aktuelle Antivirus-Programme sofort solchen Angriffen entgegen.

Textersatz-Makros

Sprachen wie C und Zusammenbau-Sprache haben rudimentäre Makrosysteme, durchgeführt als Vorverarbeiter zum Bearbeiter oder Monteur. C Vorverarbeiter-Makros arbeiten durch den einfachen textlich suchen-und-ersetzen am Jeton, aber nicht dem Charakter, Niveau.

Ein klassischer Gebrauch von Makros ist im Computerschriftsetzen-System TeX und seine Ableitungen, wo der grösste Teil der Funktionalität auf Makros basiert.

MacroML ist ein experimentelles System, das sich bemüht, das statische Schreiben und die Makrosysteme beizulegen. Nemerle hat Syntax-Makros getippt, und eine produktive Weise, an diese Syntax-Makros zu denken, ist als eine Mehrstufenberechnung.

Andere Beispiele:

  • m4 ist ein hoch entwickelter, eigenständiger Makroverarbeiter.
  • TRAC
  • Makroerweiterung TAL, Schablone-Attribut-Sprache begleitend
  • SMX, für Webseiten
  • ML/1 Makrosprache Ein
  • Der Allgemeine Zweck-Makroverarbeiter ist ein Kontextmuster, das Makroverarbeiter vergleicht, der als eine Kombination von regelmäßigen Ausdrücken, EBNF und AWK beschrieben werden konnte
  • SAM76
  • minimac, ein concatenative Makroverarbeiter.
  • troff und nroff, für das Schriftsetzen und die Formatierung Unix manpages.

Sprachen von Embeddable

Einige Sprachen, wie PHP, können im Text des freien Formats oder dem Quellcode anderer Sprachen eingebettet werden. Der Mechanismus, durch den die Codebruchstücke erkannt werden (zum Beispiel, dadurch eingeklammert

Verfahrensmakros

Makros auf der PL/I Sprache werden in einer Teilmenge von PL/I selbst geschrieben: Der Bearbeiter führt "Vorverarbeiter-Behauptungen" in der Übersetzungszeit durch, und die Produktion dieser Ausführung bildet einen Teil des Codes, der kompiliert wird. Die Fähigkeit, eine vertraute Verfahrenssprache als die Makrosprache zu verwenden, gibt Macht, die viel größer ist als dieses von Textersatz-Makros auf Kosten eines größeren und langsameren Bearbeiters.

Entwickeln Sie sich die Rahmenmakros der Technologie haben ihre eigene Befehl-Syntax, aber können auch Text auf jeder Sprache enthalten. Jeder Rahmen ist sowohl ein allgemeiner Bestandteil in einer Hierarchie von verschachtelten Subbauteilen als auch ein Verfahren, um sich mit seinen Subzusammenbau-Rahmen zu integrieren (ein rekursiver Prozess, der Integrationskonflikte für höhere Niveau-Subbauteile auflöst). Die Produktionen sind kundenspezifische Dokumente, normalerweise compilable Quellmodule. Rahmentechnologie kann die Proliferation von ähnlichen, aber subtil verschiedenen Bestandteilen, ein Problem vermeiden, das Softwareentwicklung seit der Erfindung von Makros und Unterprogrammen geplagt hat.

Die meisten Zusammenbau-Sprachen haben weniger starke Verfahrensmakromöglichkeiten, zum Beispiel einem Block des Codes erlaubend, N Zeiten für die sich entfaltende Schleife wiederholt zu werden; aber diese haben eine völlig verschiedene Syntax aus der wirklichen Zusammenbau-Sprache.

Syntaktische Makros

Makrosysteme, die am Niveau von abstrakten Syntax-Bäumen arbeiten, werden syntaktische Makros genannt und bewahren die lexikalische Struktur des ursprünglichen Programms. Inzwischen, Makrosysteme, wie der C Vorverarbeiter beschrieben früher, kann diese Arbeit am Niveau von lexikalischen Jetons nicht die lexikalische Struktur zuverlässig bewahren. Die am weitesten verwendeten Durchführungen von syntaktischen Makrosystemen werden auf einem Lispeln ähnlichen Sprachen wie Allgemeines Lispeln, Schema, ISLISP und Schläger gefunden. Diesen Sprachen wird besonders für diesen Stil von Makro-wegen ihrer Uniform, parenthesized Syntax (bekannt als S-Ausdrücke) angepasst. Insbesondere gleichförmige Syntax macht es leichter, die Beschwörungen von Makros zu bestimmen. Lispeln-Makros gestalten die Programm-Struktur selbst mit der vollen Sprache um, die verfügbar ist, um solche Transformationen auszudrücken. Während syntaktische Makros meistens auf einem Lispeln ähnlichen Sprachen gefunden werden, sind sie für andere Sprachen wie Dylan, Scala und Nemerle durchgeführt worden.

Frühe Lispeln-Makros

Die frühsten Lispeln-Makros haben die Form von FEXPRs, funktionsähnliche Maschinenbediener angenommen, deren Eingänge nicht die Werte waren, die durch die Argumente, aber eher die syntaktischen Formen der Argumente geschätzt sind, und dessen Produktion syntaktische Bruchstücke war, die im Platz des Gebrauches des FEXPR zu verwenden sind. Darin Lispelt später, FEXPRs wurden durch DEFMACRO, ein System ersetzt, das Programmierern erlaubt hat, Quelle-zu-Quelle-Transformationen anzugeben, die angewandt wurden, bevor das Programm geführt wird.

Hygienische Makros

Mitte der achtziger Jahre haben mehrere Papiere den Begriff der hygienischen Makrovergrößerung , ein Muster-basiertes System eingeführt, wo die syntaktischen Umgebungen der Makrodefinition und des Makrogebrauches verschieden sind, Makrodefiners und Benutzern erlaubend, sich über die unachtsame variable Festnahme nicht zu sorgen (vgl. Verweisungsdurchsichtigkeit). Hygienische Makros sind für das Schema sowohl im R5RS als auch in den R6RS Standards standardisiert worden. Der kommende R7RS Standard wird auch hygienische Makros einschließen. Mehrere konkurrierende Durchführungen von hygienischen Makros bestehen solcher als, ausführliche Umbenennung und syntaktische Verschlüsse. Beide dessen und sind in den Schema-Standards standardisiert worden.

Mehrere Sprachen außer dem Schema entweder führen hygienische Makros durch oder führen teilweise hygienische Systeme durch. Beispiele schließen Scala, Julia, Dylan und Nemerle ein.

Anwendungen

Einschätzungsordnung

:Macro-Systeme haben eine Reihe des Gebrauches. Das Imstandesein, die Ordnung der Einschätzung zu wählen (sieh faule Einschätzung und nichtstrenge Funktionen), ermöglicht die Entwicklung von neuen syntaktischen Konstruktionen (z.B Kontrollstrukturen) nicht zu unterscheidend von denjenigen, die in die Sprache eingebaut sind. Zum Beispiel in einem Lispeln-Dialekt, der hat, aber fehlt, ist es möglich, die Letzteren in Bezug auf die ehemaligen Verwenden-Makros zu definieren. Zum Beispiel hat Schema beide Verlängerungen und hygienische Makros, der einem Programmierer ermöglicht, ihre eigenen Kontrollabstraktionen wie das Schlingen zu entwerfen und früh über Konstruktionen ohne das Bedürfnis zu herrschen, sie in die Sprache einzubauen.

Datensubsprachen und bereichsspezifische Sprachen

: Dann machen Makros es möglich, Datensprachen zu definieren, die in den Code sofort kompiliert werden, was bedeutet, dass Konstruktionen wie Zustandmaschinen in einem Weg durchgeführt werden können, der sowohl natürlich als auch effizient ist.

Schwergängigkeit von Konstruktionen

:Macros kann auch verwendet werden, um neue verbindliche Konstruktionen einzuführen. Das wohl bekannteste Beispiel ist die Transformation in die Anwendung einer Funktion zu einer Reihe von Argumenten.

Felleisen vermutet, dass diese drei Kategorien den primären legitimen Gebrauch von Makros in solch einem System zusammensetzen. Andere haben alternativen Gebrauch von Makros wie Anaphoric-Makros in Makrosystemen vorgeschlagen, die unhygienisch sind oder auswählende unhygienische Transformation erlauben.

Die Wechselwirkung von Makros und anderen Spracheigenschaften ist ein produktives Gebiet der Forschung gewesen. Zum Beispiel sind Bestandteile und Module für die groß angelegte Programmierung nützlich, aber die Wechselwirkung von Makros und diesen anderen Konstruktionen muss für ihren Gebrauch zusammen definiert werden. Modul und Teilsysteme, die mit Makros aufeinander wirken können, sind für das Schema und die anderen Sprachen mit Makros vorgeschlagen worden. Zum Beispiel erweitert die Schläger-Sprache den Begriff eines Makrosystems zu einem syntaktischen Turm, wo Makros auf Sprachen einschließlich Makros mit der Hygiene geschrieben werden können, um sicherzustellen, dass syntaktische Schichten verschiedene und erlaubende Module sind, um Makros zu anderen Modulen zu exportieren.

Makros für die maschinenunabhängige Software

Makros werden normalerweise verwendet, um eine kurze Schnur (Makrobeschwörung) zu einer längeren Folge von Instruktionen kartografisch darzustellen. Ein anderer, weniger üblich, Gebrauch von Makros soll die Rückseite tun: Eine Folge von Instruktionen zu einer Makroschnur kartografisch darzustellen. Das war die Annäherung, die vom STAGE2 Beweglichen Programmiersystem genommen ist, das einen rudimentären Makrobearbeiter verwendet hat (hat SIMCMP genannt), den spezifischen Befehlssatz eines gegebenen Computers zur Kopie maschinenunabhängige Makros kartografisch darzustellen. Anwendungen (namentlich Bearbeiter) geschrieben in diesen maschinenunabhängigen Makros können dann ohne Änderung auf jedem mit dem rudimentären Makrobearbeiter ausgestatteten Computer geführt werden. Die erste in solch einem Zusammenhang geführte Anwendung ist ein hoch entwickelterer und starker Makrobearbeiter, der auf der maschinenunabhängigen Makrosprache geschrieben ist. Dieser Makrobearbeiter wird auf sich, in einer Stiefelstrippe Mode angewandt, um eine kompilierte und viel effizientere Version von sich zu erzeugen. Der Vorteil dieser Annäherung besteht darin, dass komplizierte Anwendungen von einem Computer bis einen sehr verschiedenen Computer mit sehr wenig Anstrengung (für jede Zielmaschinenarchitektur, gerade das Schreiben des rudimentären Makrobearbeiters) getragen werden können. Das Advent von modernen Programmiersprachen, namentlich C, für den Bearbeiter auf eigentlich allen Computern verfügbar sind, hat solch eine überflüssige Annäherung gemacht. Das, war jedoch, eines der ersten Beispiele (wenn nicht das erste) des Bearbeiter-Urladeverfahrens.

Siehe auch

  • Makros von Anaphoric
  • Hygienische Makros
  • Makroinstruktion
  • Die Programmierung durch die Demonstration

Source is a modification of the Wikipedia article Macro (computer science), licensed under CC-BY-SA. Full list of contributors here.
Mecha / Malleus Maleficarum
Impressum & Datenschutz