kavak.run derleyici yığını

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ı

Ortak derleyici yolu
  1. 01 Frontend çekirdeğidescriptor → AST / type
  2. 02 KIRtype → doğrula → yapılandır
  3. 03 WebAssemblylinear memory · WASM-GC
  4. 04 Host sınırıfs · gfx · input · frame · clock · sound

Ortak taban

Üstte dile özel. Altta ortak.

  1. 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.

  2. 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.

  3. 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. 1 tipli IR wasm öncesi doğrulanır
  2. 2 wasm hedefi linear memory · WASM-GC
  3. 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.

Stüdyoyu Aç