Frequently Asked Questions
Answers to common questions about LOVE-LANG.
Frequently Asked Questions
Section titled “Frequently Asked Questions”Why not just use a standard syntax?
Section titled “Why not just use a standard syntax?”Love is a language, and as such, it should be able to express itself in a way that is natural to the user.
Traditional programming languages force you to think in their syntax. LOVE-LANG flips this: the language adapts to how you express intent. By making language a first-class citizen, LOVE programmes are closer to formal natural language specs than source code in the traditional sense.
Why not use a compiler?
Section titled “Why not use a compiler?”Love is a language, and as such, it should be able to express itself in a way that is natural to the user.
LOVE does have a compiler — but it is a self-compiling evaluator. The evaluator can rewrite itself at runtime, which means the “compiler” is not a separate tool but an intrinsic capability of the language itself.
Why not use a runtime?
Section titled “Why not use a runtime?”LOVE does not have a separate runtime. The evaluator is the runtime. Because the bracket hierarchy strictly separates pure computation (L1–L3) from effectful operations (L5), LOVE can be simultaneously interpreted and compiled depending on context.
What makes this not Racket?
Section titled “What makes this not Racket?”Racket is a language-oriented programming language, where LOVE is a linguistics programming language.
The differentiation is that Formal Languages are processed by Racket through a runtime, while LOVE mutates its internal interpreter to process multiple language streams according to higher-order constructs governed by the Superautology.
| Feature | Racket | LOVE-LANG |
|---|---|---|
| Extension model | #lang macros | Superautology variants |
| Bracket levels | 1 | 5 (L1–L5) |
| Self-modification | Limited via macros | First-class evaluator mutation |
| Grammar structure | External DSL | Isomorphic to parser |
| Compilation target | Racket VM (+ CS) | Any — via Gleam/BEAM/JS |
What is the Superautology?
Section titled “What is the Superautology?”The Superautology is LOVE-LANG’s master invariant — the constitution of the language. All language variants built on top of LOVE must satisfy it. It is the guarantee that LOVE’s self-modification does not break its own semantics.
What is L0?
Section titled “What is L0?”L0 is the internal representation used by the LOVE evaluator — a linear array of memory containing data in the same order it appears in source, plus pointers. Users generally don’t write L0 directly. It’s the bedrock upon which L1–L5 rest.
Can LOVE-LANG compile to WebAssembly?
Section titled “Can LOVE-LANG compile to WebAssembly?”Yes. LOVE-LANG is built on Gleam, which targets both the BEAM (Erlang VM) and JavaScript. Via JavaScript, you can compile to WebAssembly. Native binary targets are on the roadmap.
Is LOVE-LANG production-ready?
Section titled “Is LOVE-LANG production-ready?”LOVE-LANG is currently at version 1.0.0. The core evaluator and bracket hierarchy are stable. The standard library (std/) is actively growing. We recommend using it for research, tooling DSLs, and meta-programming experiments while the ecosystem matures.
How do I contribute?
Section titled “How do I contribute?”Check out the GitHub repository and open a pull request! The best ways to contribute are:
- Writing documentation examples
- Adding standard library functions
- Building tooling (VS Code extension features, LSP, formatter)
- Proposing new language invariants via the RFC process