# Macro Systems

> A facility that lets code transform other code at compile time by operating on its data representation.

Record: `lexicon:macro-systems`
Kind: mechanism
Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-macro-systems

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Code-as-Data Representation](https://banes-lab.com/records/lexicon/code-as-data-representation.md) and before [Opaque Syntax Trees](https://banes-lab.com/records/lexicon/opaque-syntax-trees.md).

## Category

- [Metaprogramming / Language-Oriented Architecture](https://banes-lab.com/records/lexicon-category/metaprogramming-language-oriented-architecture.md)

## Enabled by

- [Homoiconicity](https://banes-lab.com/records/architecture/homoiconicity.md)

## Linked from

- [Metaprogramming / Language-Oriented Architecture](https://banes-lab.com/ontology/principles/architecture-category-metaprogramming-language-oriented-architecture.md)
