Skip to content

LOVE Metalanguage

A linguistics-oriented, self-programmable programming language. Language as a first-class citizen.

example.love

Self-Programmable

LOVE can rewrite its own interpreter at runtime. Meta-level programming that is impossible in conventional PLs.

Linguistics First

Language is a first-class citizen. Type annotations, contracts, and docs are not bolted on — they are built in.

Five Bracket Levels

A clean topology from data `[x]` to system FFI `[[[[[x]]]]]`. Each ring encodes trust and semantic complexity.

Compiles Anywhere

Built on Racket & Gleam — targeting Erlang BEAM, JavaScript, and WebAssembly. One language, every target.

Isomorphic Grammar

The parser has the same structure as the grammar it parses. The program state at each step is a linear memory array ordered by appearance.

SATOR/SOLID

LOVE maps SOLID engineering principles onto its compilation phases. Correct by construction.

Language support & what we need

LOVE-LANG spans Racket and Gleam, with paths toward the BEAM, JavaScript, and WebAssembly. The docs site itself is the first “client” of that story: we need tight examples, reproducible build notes per target, and honest gaps called out in the open.

  • Reference interpreters and compiler stages documented alongside the grammar, not buried in tickets.
  • Editor ergonomics: tree-sitter or LSP-quality highlighting, bracket-aware navigation, and snippet packs.
  • Localization hooks for Starlight when the prose stabilizes — linguistics belongs in many languages.

Roadmap

Sketches, not promises — the kind of map you fold in a breezy window seat.

  • Near — Finish core reference pages (syntax edges, ontology examples, prelude coverage).
  • Mid — Package layout, versioning story, and one blessed “hello world” per compile target.
  • Further — Deeper meta-circular tales: self-hosted evaluation, formalized invariants, teaching tracks.

Use cases

  • Authoring small DSLs where the host language and the object language should feel like cousins, not strangers.
  • Teaching programming through linguistics — brackets as trust rings, contracts as visible promises.
  • Services that must run on BEAM and the browser with the same semantic spine.
  • Research tooling where the parser’s shape mirrors the grammar under study.

Experiments

The metalanguage invites sandboxes: try alternate surface syntaxes, snapshot the linear memory story, or stress-test bracket promotion. Document the failures — a crisp “we tried this” is as valuable as a merge.

  • Micro-benchmarks that isolate bracket allocation vs. plain data paths.
  • Literate programs that export both docs and runnable artefacts.
  • Interop probes with Erlang ports, WASM hosts, and Racket extensions.

For contributors

Issues welcome for doc drift, unclear examples, and missing tests. Prefer small patches with a stated learning goal: what should a reader understand after your change?

  • Start from Introduction and note where you stumbled.
  • Use the FAQ to park recurring questions until they earn a full guide.
  • Point to reproducible commands — LOVE wants to be loved on real machines.

Fruit-aero principles

This site chases an airy, orchard-bright seriousness: ripe accent colours, glassy depth, and typography that breathes. Documentation should feel welcoming without hiding rigour — sweet surface, honest core.

  • Gradients and blur suggest atmosphere; content stays concrete and testable.
  • Motion is sparing — a gentle float, not a carnival — so readers with vestibular sensitivity stay comfortable.
  • Playful touches reward curiosity but never block the path to the spec.

Stay in the loop

  • Blog for release notes and essays.
  • Changelog for the running record.
  • GitHub for code, discussions, and roadmaps-in-the-wild.
  • Hidden whimsy: type love anywhere, or try ?blossom=1 on the URL — little hearts, big tone.

Last updated: