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.