# Program Transformation

> The ability to analyze and rewrite a program by manipulating its structured representation.

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

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [AST or Data Representation](https://banes-lab.com/records/lexicon/ast-or-data-representation.md) and before [Safety/Debuggability](https://banes-lab.com/records/lexicon/safety-debuggability.md).

## Category

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

## Enabled by

- [Code as Data](https://banes-lab.com/records/architecture/code-as-data.md)

## Linked from

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