Uma linguagem. Vários mundos.
O mesmo frontend de linguagem alimenta todos os backends. O código não muda porque o target mudou.
JVM
DisponívelIntegração com o ecossistema Java e execução na JVM.
Kof ↓ Kof Compiler ↓ Kof IR ↓ JVM Backend ↓ .class ↓ JVM
O backend JVM gera bytecode diretamente. Java é uma plataforma de interoperabilidade, não uma linguagem intermediária.
Native
DisponívelBinários nativos sem exigir que o programador gerencie memória manualmente.
Kof ↓ Kof IR ↓ Native Backend ↓ Executable
ELF x86-64 — runtime asm próprio, sem libc no caminho base; FFI/process/dtoa ligam libc sob demanda (por uso). GC com free-list kof_free_head + kof_gc_collect mark-sweep real + auto-collect + runtime podado por alcançabilidade ( kof build --print-sizes). FFI extern com callbacks nativos via trampoline gerado kof_cb_tramp_<desc> (M1 completa, 11/10 — só callback com retorno String segue FFI001).
Script — KofScript
DisponívelKofScript (.ks, REPL) — target de execução direta: Kof puro no MESMO frontend, executado pelo KofInterpreter (IR) sem emitir bytecode nem fork de JVM. Não é JavaScript — let/const/async/fn não existem (dão PARSE085).
Kof (.ks) ↓ Kof IR (MESMO frontend) ↓ KofInterpreter (sem compilar) ↓ Execução direta
Web — KofJS
DisponívelKof ↓ KofJS ↓ ES Modules (ECMAScript 2022+)
Native — riscv64 / aarch64
Disponívelnative.risc (riscv64) e native.arm (aarch64) — codegen real em asm puro + stdlib sob qemu (JSON, HTTP, spawn/await, String, io, db (SQLite real no cross desde 15/09)/orm, GC/dtoa/canais; MySQL/MariaDB wire só no x86-64 — cross recusa DB001 com honestidade, assim como schemes sem wire). kof.media é JVM-only (MEDIA001/003). Três defeitos de reclaim do GC cross corrigidos 11/10 (§602); callbacks FFI cross via trampoline (mesma fonte roda JVM, riscv64 e aarch64 byte-for-byte); MCU/riscv32 planeado.
Kof IR ↓ NativeBackend (riscv64/aarch64) ↓ ELF (qemu) ↓ qemu
KofC — C subset
Disponívelkof c — subset de C (int globals, void funcs, if/while/*(int*)/&) → ELF x86-64/riscv64/aarch64 (C1–C4 cross).
C subset ↓ KofCcompiler ↓ ELF x86_64 ↓ Native
Android
DisponívelVariante do backend JVM: kof build --target android gera projeto com host em Kof; --apk standalone (aapt2/d8/zipalign/apksigner direto da CLI) + release signing com --keystore. spawn usa platform threads (ART sem virtual threads — AND001 fechado); a UI roda no WebView KofJS. Gaps AND00x nomeados em compile-time.
Kof IR ↓ JvmBackend (release 21) ↓ APK
Kof não é um transpiler.
Não existe uma etapa em que Kof vira Java e depois pede ajuda ao javac.
Kof → Java → javac → JVM
Kof ↓ Compiler ↓ Kof IR ↓ Backend ↓ Target
Você escreve código. O runtime cuida da memória.
O código Kof não deve mudar apenas porque foi compilado para Native. Nada de malloc, free, ponteiros ou lifetimes manuais.
class User( String name)main() { var user = User("Mel") println(user.name)}