A linguagem deve representar intenção.
Kof é uma linguagem geral, fortemente tipada e estaticamente tipada, criada para reduzir drasticamente a complexidade necessária para construir software moderno.
Tipagem forte
Tipagem estática
Humano primeiro
Boilerplate não é uma feature.
Se o compilador consegue entender a intenção sem exigir vinte linhas de cerimônia, vinte linhas de cerimônia não deveriam existir.
Cerimônia tradicional
public final class User { private final String name; private final String email; public User(String name, String email) { this.name = name; this.email = email; } public String name() { return name; } public String email() { return email; }}Kof
record User(String name, String email)Menos código não significa menos capacidade.
Exemplos executáveis
main() { println("Hello from Kof")}add(Int a, Int b): Int { return a + b}main() { println(add(2, 3))}record User(String name, String email)main() { var user = User("Mel", "mel@example.com") println(user.name())}main() { var users = listOf("Mel", "Kof") for (var user in users) { println(user) }}O que já existe no frontend da linguagem
Recursos abaixo fazem parte da base do compilador (0.6.0). A separação linguagem ≠ compilador ≠ target está documentada em docs/language-reference/ (gramática, sistema de tipos, semântica) e docs/compiler-architecture.md (implementação).
`fn`/`fun`/`func` são palavras reservadas (SG-001, 06/09) — em qualquer posição dão PARSE085. `let`/`const`/`async` não existem — KofScript é Kof puro (PARSE085). Arrays literais `[1,2,3]` e `Option<T>` não existem.
A linguagem não muda quando o target muda.
Kof Source
↓
Kof Compiler
↓
Kof IR
↓
┌───┬───┬───────┬────┬──────┐
↓ ↓ ↓ ↓ ↓ ↓
JVM Native Script KofJS KofC