- 语言
- 英语
- 发布于
- 16天前
- 复刻
- 7
Wyzer-Lang/wyzer ↗· OCaml· Apache-2.0· 最近提交 1天前
规则只有一条:资源用过一次就不能再用。Wyzer 想靠这一条同时管住内存、线程和网络消息,它是一门静态类型的编译型语言,编译器用 OCaml 写成,既没有垃圾回收器,也不做 Rust 那样的借用检查。内存沿用从 Koka 与 Lean 4 借来的 Perceus 引用计数,只要一个值仅有一个主人,即便写成函数式风格,编译器也会就地改写它。
分布式那一半交给编排式编程:照常写普通函数,由类型标明每份数据归谁,编译器据此推导出通信规则并逐条检查,目标是在程序跑起来之前就抓出死锁和丢失的消息。语法刻意保持朴素,let 不可变、var 可变,失败以 Result 返回、用 match 处理,也没有 async 与 await 的分裂。作者自己写明,这仍是尚有多处未解的早期研究。