Metaprogramming / Language-Oriented Architecture

Kind: category

Record: architecture-category:metaprogramming-language-oriented-architecture

Canonical: Ontology

The Metaprogramming / Language-Oriented Architecture category holds 10 architecture principles.

Listed in Principle categories, after Metadata / Self-Description / Declarative Systems and before Model Architecture.

Principle

Layer

Linked from

Metaprogramming / Language-Oriented Architecture

Every principle in this category is listed as a record. Each record carries its kind, its severity, the scopes it applies at and the layer it lives in, then the edge relations that join it to other records, the records that point back at it, the contracts that answer to it and the tensions it takes part in. The descriptors say how it is violated, detected, measured, repaired and enforced. Where the record carries one, an exemplar shows the shape before and after the principle is applied.

Relations diagram
The relations inside this category.
flowchart LR
    n_homoiconicity["Homoiconicity"]
    n_code_as_data["Code as Data"]
    n_metaprogramming["Metaprogramming"]
    n_reflection["Reflection"]
    n_introspection["Introspection"]
    n_compile_time_evaluation["Compile-Time Evaluation"]
    n_runtime_code_generation["Runtime Code Generation"]
    n_domain_specific_language["Domain-Specific Language (DSL)"]
    n_language_oriented_programming["Language-Oriented Programming"]
    n_model_driven_architecture["Model-Driven Architecture"]
    n_homoiconicity --> n_metaprogramming
    n_code_as_data --> n_homoiconicity
    n_reflection --> n_introspection