Вы находитесь на странице: 1из 3

Macro (computer science)

A macro (short for "macroinstruction", from Greek μακρός 'long') in computer


science is a rule or pattern that specifies how a certain input sequence (often a
sequence of characters) should be mapped to a replacement output sequence (also
often a sequence of characters) according to a defined procedure. The mapping
process that instantiates (transforms) a macro use into a specific sequence is known
as macro expansion. A facility for writing macros may be provided as part of
a software application or as a part of a programming language. In the former case,
macros are used to make tasks using the application less repetitive. In the latter
case, they are a tool that allows a programmer to enable code reuse or even to
design domain-specific languages.

Macros are used to make a sequence of computing instructions available to


the programmer as a single program statement, making the programming task less
tedious and less error-prone.[1][2] (Thus, they are called "macros" because a "big"
block of code can be expanded from a "small" sequence of characters.) Macros
often allow positional or keyword parameters that dictate what the conditional
assembler program generates and have been used to create entire programs or
program suites according to such variables as operating system, platform or other
factors. The term derives from "macro instruction", and such expansions were
originally used in generating assembly language code.

Keyboard and mouse macros

Keyboard macros and mouse macros allow short sequences of keystrokes and
mouse actions to transform into other, usually more time-consuming, sequences of
keystrokes and mouse actions. In this way, frequently used or repetitive sequences
of keystrokes and mouse movements can be automated. Separate programs for
creating these macros are called macro recorders.

During the 1980s, macro programs – originally SmartKey, then SuperKey,


KeyWorks, Prokey – were very popular, first as a means to automatically
format screenplays, then for a variety of user input tasks. These programs were
based on the TSR (terminate and stay resident) mode of operation and applied to
all keyboard input, no matter in which context it occurred. They have to some
extent fallen into obsolescence following the advent of mouse-driven user
interfaces and the availability of keyboard and mouse macros in applications such
as word processors and spreadsheets, making it possible to create application-
sensitive keyboard macros.

Keyboard macros have in more recent times come to life as a method of exploiting
the economy of massively multiplayer online role-playing games (MMORPGs).
By tirelessly performing a boring, repetitive, but low risk action, a player running a
macro can earn a large amount of the game's currency or resources. This effect is
even larger when a macro-using player operates multiple accounts simultaneously,
or operates the accounts for a large amount of time each day. As this money is
generated without human intervention, it can dramatically upset the economy of
the game. For this reason, use of macros is a violation of the TOS or EULA of
most MMORPGs, and administrators of MMORPGs fight a continual war to
identify and punish macro users.

Application macros and scripting


Keyboard and mouse macros that are created using an application's built-in macro
features are sometimes called application macros. They are created by carrying
out the sequence once and letting the application record the actions. An underlying
macro programming language, most commonly a scripting language, with direct
access to the features of the application may also exist.

The programmers' text editor, Emacs, (short for "editing macros") follows this idea
to a conclusion. In effect, most of the editor is made of macros. Emacs was
originally devised as a set of macros in the editing language TECO; it was later
ported to dialects of Lisp.

Another programmers' text editor, Vim (a descendant of vi), also has full
implementation of macros. It can record into a register (macro) what a person types
on the keyboard and it can be replayed or edited just like VBA macros for
Microsoft Office. Vim also has a scripting language called Vimscript[4] to create
macros.

Visual Basic for Applications (VBA) is a programming language included


in Microsoft Office from Office 97 through Office 2019 (although it was available
in some components of Office prior to Office 97). However, its function has
evolved from and replaced the macro languages that were originally included in
some of these applications.

Вам также может понравиться