为什么用中文关键字

2026-05 · 设计

奇语(Qi)100% 用中文关键字:函数 变量 如果 返回。常被问的第一个问题是——这是噱头吗?

认知负荷,而非语法糖

对中文母语者,阅读 如果 (年龄 >= 18) { 返回 真; } 不需要把关键字在脑内翻译一遍。代码读起来像它本来描述的逻辑,而不是「英文 + 中文变量名」的混合体。

关键字是用得最频繁的词。把这层摩擦去掉,初学者的入门曲线明显变平。

它仍然是真编译语言

中文只在词法层。下面这段经过 LALRPOP 解析 → LLVM IR → 原生机器码,没有解释器:

包 主程序;
导入 标准库.输入输出 作为 IO;

函数 斐波那契(n: 整数) : 整数 {
    如果 (n < 2) { 返回 n; }
    返回 斐波那契(n - 1) + 斐波那契(n - 2);
}

函数 入口() {
    IO.打印行("fib(10) = " + 整数转字符串(斐波那契(10)));
}

代价:解析器的取舍

中文标识符和中文关键字共享字符空间,带来一些 LALR(1) 上的纠结——比如 结果 类型 是保留字,暂时不能直接当变量名(泛型 结果<T,E>< 歧义)。我们选择诚实地把这些列成保留字地雷,而不是假装没有。

→ 读文档开始写奇语