Macro (Computer Science)

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Macro (computer science)

A macro (short for "macroinstruction", from Greek combining form μακρο- 'long,
large'[1]) in computer science is a rule or pattern that specifies how a certain
input should be mapped to a replacement output. Applying a macro to an input is
macro expansion. The input and output may be a sequence of lexical tokens or
characters, or a syntax tree. Character macros are supported in software
applications to make it easy to invoke common command sequences. Token and
tree macros are supported in some programming languages to enable code reuse
or to extend the language, sometimes for 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.[2][3] (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 can be used in massively multiplayer online role-playing games


(MMORPGs) to perform repetitive, but lucrative tasks, thus accumulating
resources. As this is done without human effort, it can skew the economy of the
game. For this reason, use of macros is a violation of the TOS or EULA of most
MMORPGs, and their administrators spend considerable effort to suppress them.
[4]

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[5] 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.

XEDIT, running on the Conversational Monitor System (CMS) component of VM,


supports macros written in EXEC, EXEC2 and REXX, and some CMS commands
were actually wrappers around XEDIT macros. The Hessling Editor (THE), a partial
clone of XEDIT, supports Rexx macros using Regina and Open Object REXX
(oorexx). Many common applications, and some on PCs, use Rexx as a scripting
language.

Macro virus
Main article: Macro virus (computing)
VBA has access to most Microsoft Windows system calls and executes when
documents are opened. This makes it relatively easy to write computer viruses in
VBA, commonly known as macro viruses. In the mid-to-late 1990s, this became
one of the most common types of computer virus. However, during the late 1990s
and to date, Microsoft has been patching and updating their programs. In
addition, current anti-virus programs immediately counteract such attacks.

You might also like