中文与英文是同一门语言的两种拼写
三条汉语语言链、一个编辑器、一个引擎。中文关键字不是一层翻译 —— 它与英文并列,同一次编译、同一份产物。
三条链的产物都与上游逐字节兼容 · 现有代码一行不改照常编译 · 绿色免安装,解压加 PATH 就能用
三条汉语语言链、一个编辑器、一个引擎。中文关键字不是一层翻译 —— 它与英文并列,同一次编译、同一份产物。
三条链的产物都与上游逐字节兼容 · 现有代码一行不改照常编译 · 绿色免安装,解压加 PATH 就能用
1#包含 <cstdio> // 中文指令,等价于 #include
2#include <vector> // 英文指令 —— 混着写没问题
3
4整数 主函数() {
5 坐标点 起点; // ← 这里报错
6 整数 和 = 0;
7 返回 0;
8}三条语言链可以单独装,也可以由编辑器一键带齐。每一件都只做加法 —— 中文是多出来的一种写法,不是替换掉英文。
99 个关键字拼写 + 22 条中文预处理指令,中文诊断 7344 条。
35 硬 + 3 软关键字,157 个库入册;显示层中文、数据层英文。
85 个关键字做进 TypeScript 7,上游只改了 7 个文件。
编辑器本体 —— 装完自带上面三条汉语链,开箱即用。
游戏引擎层 —— 用汉语写游戏。
OpenJDK 的汉语关键字改造(编译器 + 标准库)—— 开发中。
下面四条是这个项目跟「把关键字表翻一遍」最大的区别。
同一个标识符,写 整数 和写 int 指的是同一个东西;#包含 和 #include 也是同一条指令。中英可以随意混写 —— 这不是凑合,是设计。
#包含 <cstdio> // 中文指令#include <vector> // 英文指令,混着写整数 主函数() { // 主函数 = main 返回 0;}编译器说中文,连「你是想写 X 吗」这种提示也是中文。但 error: / warning: 这两个级别前缀故意保留英文 —— 编辑器的问题面板和 CI 脚本靠它抓日志,翻成中文会把工具链打断。
$ chinese++ 示例.cpp -o 示例.exe示例.cpp:5:1: error: 未知类型名 '坐标点'; 你是想写 '坐标' 吗? ^~~~ 提示本身也是中文三条链都只加法,不改已有语义:中文写法编译出来的产物,与英文写法逐字节 / 二进制一致。所以第三方库、调试器、现有工程全都照常工作 —— 生态一点没丢。
$ sha256sum 上游产物 本链产物3f2a91c47b0e 上游产物3f2a91c47b0e 本链产物✓ 一致 —— 5894 个文件全量比对,不是抽样不需要装 VS Build Tools,不需要管理员权限:解压到任意目录、把目录加进 PATH 就能编译。想切回全英文诊断,加一个开关就行。
PS> chinese++ 示例.cpp -o 示例.exePS> .\示例.exe和 = 6PS> chinese++ 示例.cpp -fno-chinese-diagnostics # 切回英文它们不是宣传语,是四条能被机器判定的约束。
中文不是「翻译」,而是与英文并列的正式拼写。
给已有的东西加中文名 = 生态不丢;改掉已有名字 = 切断生态。
与上游逐字节 / 二进制兼容,现有代码一行不改照常编译。
不是「我们保证」,而是每次提交全量复跑,承诺有硬判据。