Faber is an open source programming language created in 2026 by Ian Zepp.
| #1551on PLDB | 0Years Old |
git clone https://github.com/faberlang/faberFaber (Faber Romanus) is an experimental, statically typed language designed to be written by language models and read by people. Every operator is a single glyph with one meaning, types come before names, and failure is a typed second channel. The same analysed program can be rendered in several reader languages (English, Latin and others). A reference interpreter defines the semantics, and code generators emit Rust, Go, TypeScript, Swift, Python, C and LLVM IR, each measured against it. Experimental through version 1.x.
fn greet(string name) → string {
return "Salve, §!"(name)
}
fn divide(int a, int b) → int ⇥ string {
if b ≡ 0 then throw "division by zero"
return a / b
}
main {
let list<string> names ← ["Ana", "Ben"]
for from names let name {
print greet(name)
}
print divide(7, 0) ⊥ -1
}| Feature | Supported | Example | Token |
|---|---|---|---|
| Exceptions | ✓ | fn divide(int a, int b) → int ⇥ string { if b ≡ 0 then throw "division by zero" return a / b } | |
| Generics | ✓ |
fn first |
|
| Type Inference | ✓ | let _ answer ← 42 | |
| Static Typing | ✓ | fn add(int a, int b) → int { return a + b } | |
| Functions | ✓ | fn add(int a, int b) → int { return a + b } | |
| Integers | ✓ | let int answer ← 42 | |
| Line Comments | ✓ | # A comment | # |
| Comments | ✓ | # A comment | |
| Strings | ✓ | "Hello world" | " |
| Print() Debugging | ✓ | print "Hello world" | |
| Semantic Indentation | X |