Pre-alpha: Published for early evaluation only

Faber Romanus

The Roman Craftsman — An LLM-oriented intermediate representation that compiles to Zig, Rust, C++, TypeScript, or Python

Installation coming soon

The Problem

LLMs write code. Humans review it. But systems languages — Zig, Rust, C++ — are hard for both:

You don't need an IR to generate TypeScript. You need one to generate Rust without lifetime annotation chaos.

The Solution

Faber Romanus is an intermediate representation optimized for LLM generation and human review.

ex items pro item {
    si item.price > 100 {
        scribe item.name
    }
}

The workflow: LLM drafts Faber → Human approves → Compiler emits production code.

Why It Works

No ecosystem problem. Faber compiles to the target language, so you use its libraries directly. ex hono importa Hono becomes import { Hono } from 'hono'. No need to rewrite npm/PyPI/crates.io.

Grammar designed for LLMs. The EBNF specification is built for LLM consumption. Trials show models achieve 96-98% accuracy after reading the grammar specification alone — no prose documentation required.

Regular structure. Type-first declarations, consistent block patterns, no operator overloading. The regularity may matter more than the vocabulary.

Semantic vocabulary. Latin keywords encode intent: fixum (fixed/immutable) vs varia (variable/mutable), cede (yield/await), redde (give back/return).

Example

functio salve(nomen) -> textus {
    redde "Salve, " + nomen + "!"
}

fixum nomen = "Mundus"
scribe salve(nomen)

Compiles to TypeScript:

function salve(nomen): string {
    return 'Salve, ' + nomen + '!';
}

const nomen = 'Mundus';
console.log(salve(nomen));