# Reflection/AST/Code Generation

> The requirement that a language expose reflection, syntax trees, or code generation for programs to manipulate themselves.

Record: `lexicon:reflection-ast-code-generation`
Kind: constraint
Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-reflection-ast-code-generation

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Explicit Handwritten Code](https://banes-lab.com/records/lexicon/explicit-handwritten-code.md) and before [Performance/Safety](https://banes-lab.com/records/lexicon/performance-safety.md).

## Category

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

## Required by

- [Metaprogramming](https://banes-lab.com/records/architecture/metaprogramming.md)

## Linked from

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