What is a "Config Language"? What Belongs on this Page?

Config languages let you provide parameters to software, usually at runtime. For example:

This page is organized by least expressive to most expressive:

  1. Languages for String Data
  2. Languages for Typed Data
  3. Programmable String-ish Languages
  4. Programmable Typed Data
  5. Internal DSLs in General Purpose Languages

This doesn't imply anything about what solution you should use!

Oils is on the right of that spectrum: Hay Ain't YAML - Custom Languages for Unix Systems. It's the only config language embedded in a shell! It uses a staged evaluation model.

This page is editable, so feel free to add links below. And feel free to add notable usages, especially under Who Uses it?

Languages For String Data

Languages For Typed Data

These languages allow you to express structured and dynamically typed data, but they aren't programmable.

Programmable String-ish Languages

Programmable Typed Data

Proprietary / non-open-source: Google's BCL

Internal DSLs in General Purpose Languages

Links