能力
concept 描述代码所需的操作;具体类型在编译期完成能力检查,并通过单态化生成实现。
Kinglet 编程语言
using io;
enum Shape {
Circle(float),
Rect(float, float),
}
float area(Shape s) {
return s match {
Shape::Circle(let r) => 3.14 * r * r,
Shape::Rect(let w, let h) => w * h,
};
}
int main() {
Shape c = Shape::Circle(1.0);
io::out.line(area(c));
return 0;
} 语言
Kinglet 在语言层面回答四个问题:代码具备哪些能力,资源由谁负责,操作如何失败,所有状态是否得到完整处理。
concept 描述代码所需的操作;具体类型在编译期完成能力检查,并通过单态化生成实现。
标量、共享值与资源类型遵循不同的传递规则;资源通过转移和显式借用表达生命周期责任。
可失败转换产生 T?;?: 提供兜底,后缀 ? 传播失败,try / catch 定义恢复路径。
后缀式 match 可解构 enum、struct 与数组;编译器检查 enum、bool 和 Optional 的状态覆盖。
using io;
int? parse(string s) {
return int(s)? * 10;
}
int main() {
int? a = parse("42") ?: -1;
io::out.line("a = {}", a);
int n;
try {
n = int("bad")?;
} catch (let ex: CastError) {
n = -99;
}
io::out.line("n = {}", n);
return 0;
} 工具链
Bootstrap 编译器在单一可执行文件中提供语法解析、语义检查、Kinglet IR、LLVM 代码生成、小型运行时与命令行驱动。