C11 frontend · tipli KIR · WebAssembly
Diller içinbir derleyici yığını.
kavak, bir dili C11 frontend çekirdeğinde tanımlar; tipli KIR üzerinden indirger; linear memory ya da WASM-GC hedefli WebAssembly üretir. Derleyicinin kendisi tarayıcı sekmesinde wasm olarak çalışır; kaynak program JavaScript yorumlayıcısına bırakılmaz.
1.0 öncesi · MIT lisanslı
- 01 Frontend çekirdeğidescriptor → AST / type
- 02 KIRtype → doğrula → yapılandır
- 03 WebAssemblylinear memory · WASM-GC
- 04 Host sınırıfs · gfx · input · frame · clock · sound
Ortak taban
Üstte dile özel. Altta ortak.
-
01 / Frontend
Frontend işi C11’de.
Descriptor güdümlü lexing, Pratt parsing, arena AST/type yapıları, sema ve flow narrowing. Yaklaşık 6.467 satır C11, 20 dosya; çekirdekte sıfır dış bağımlılık.
-
02 / KIR
Tek tipli IR.
KIR tipli ve doğrulanır. Structured lowering bütün kontrol akışlarında tanımlıdır; reducible ve irreducible akışlardan geçerli wasm üretir.
-
03 / Runtime
Runtime, sınırda.
Opt-in runtime paketlerine regex, crypto ve math için üç freestanding wasm kütüphanesi eşlik eder. Altı nötr host sınırı capability’leri açar; host kaynak dili yorumlamaz, çıktıyı blit eder.
Yığın düzeyinde
Az ve açık sayılar.
- 1 tipli IR wasm öncesi doğrulanır
- 2 wasm hedefi linear memory · WASM-GC
- 3 freestanding kütüphane regex · crypto · math
Çalışan pilot
QBasic, bu yolun tamamından geçen ilk dil.
Derleyici tarayıcı sekmesinde wasm olarak çalışır.