# Language-Oriented Programming

Record: `arch:language-oriented-programming`
Kind: approach
Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)
Severity: contextual
Scope: domain, platform, code generation
Canonical: https://banes-lab.com/ontology#arch-language-oriented-programming

## Repair

- Refactored by: Consolidate DSL, Add Tooling
- Detected by: multiple inconsistent rule/config syntaxes
- Violated by: proliferation of informal unvalidated DSLs
- Measured by: language consistency/tooling
- Enforced by: grammar/schema validation

## requires

- [DSLs](https://banes-lab.com/records/lex/dsls.md)
- [Code Generation or Interpreters](https://banes-lab.com/records/lex/code-generation-or-interpreters.md)

## reinforces

- [Domain Modeling](https://banes-lab.com/records/lex/domain-modeling.md)

## enables

- [High-Level Domain Expression](https://banes-lab.com/records/lex/high-level-domain-expression.md)

## tensions-with

- [Toolchain Complexity](https://banes-lab.com/records/lex/toolchain-complexity.md)
- [One-Size General-Purpose Code](https://banes-lab.com/records/lex/one-size-general-purpose-code.md)

## tensions

- [Language-Oriented Programming Toolchain Complexity](https://banes-lab.com/records/tension/language-oriented-programming-toolchain-complexity.md)
- [Language-Oriented Programming One-Size General-Purpose Code](https://banes-lab.com/records/tension/language-oriented-programming-one-size-general-purpose-code.md)
