# 基石
**Repository Path**: stupid-bird123/JISHI
## Basic Information
- **Project Name**: 基石
- **Description**: 一款使用中文的编程语言
- **Primary Language**: Python
- **License**: MIT-0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-09-15
- **Last Updated**: 2026-09-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

# 基石(jishi)
一门像 Python 一样简单易用的**中文编程语言**。
> **技术栈声明(公开透明)**
> - 前端(词法/语法/AST/中文报错)由 **Python 实现**
> - 三个执行器:**树遍历解释器**(默认,Python)/ **Python 字节码 VM** /
> **C 字节码 VM**(`cvm/`,自研 C 栈式虚拟机,gcc 编成 DLL/SO,
> 纯计算场景提速最高 46x,wheel 内自带无需本机 gcc)
> - 通过桥接层**可调用任意 Python 库**,标准库为中文薄封装
> - 不 fork、不 patch CPython,也不宣称"完全自主",以上技术栈如实标注
>
> 已是一条「拿到就能写」的完整通用语言:模块系统、面向对象、异常、包管理雏形、
> AI 原生工具链(语言卡 / 结构化报错 / 评测集)、沙箱 + MCP 集成、wheel 内带 C VM。
> 定位不是教学玩具,长期目标是可维护的开源项目。
## 安装
**Windows**:下载 `jishi-<版本>-windows-x64-setup.exe`,双击安装即可
(用户级安装、免管理员;简体中文向导,含开始菜单快捷方式、可选加入 PATH、
标准卸载程序)。
**Linux / macOS**:下载对应压缩包,解压后运行 `install.sh`:
```bash
tar -xzf jishi-<版本>-linux-x64.tar.gz
cd jishi-<版本>-linux-x64 && bash install.sh
```
**从源码安装**(需本机 Python 3.10+;这是目前唯一的方式):
```bash
pip install git+https://github.com/benxiaoniao/JISHI.git
```
> **没有 `pip install jishi` 这条命令**:基石**不发布到 PyPI**——分发链路全押在
> Python 生态上不合适。我们用自己的服务器做包管理与分发,并自带安装命令
> (暂名 `下载`,规划中,见 内部路线图(未公开)「方向五 · 自主分发」)。
> 源码安装的 wheel 构建细节见 `tools/build_wheel.py`。
发行包下载见 [GitHub Releases](https://github.com/benxiaoniao/JISHI/releases),
每个版本附 `SHA256SUMS` 便于校验完整性。
## 快速上手
```bash
# 运行一个 .jsh 文件
jishi examples/01_猜数字.jsh
# 交互式 REPL
jishi -i
# 查看 AST(调试用)
jishi examples/01_猜数字.jsh --ast
```
第一个程序 `你好.jsh`:
```
# 你好,基石
打印("你好,世界!")
令 名字 = 输入("你叫什么名字?")
打印("欢迎你,", 名字)
```
## 语言示例
```
# 猜数字小游戏(判断/循环/输入)
导入 随机
令 答案 = 随机.随机整数(1, 100)
循环 10 次:
令 猜测 = 整数(输入("猜一个 1-100 的数:"))
如果 猜测 < 答案:
打印("太小了")
否则如果 猜测 > 答案:
打印("太大了")
否则:
打印("猜对了!")
中断
```
```
# 异常处理(M5a:尝试/捕获/最终/抛出)
函数 折扣价(原价, 折扣):
如果 折扣 <= 0 或 折扣 > 1:
抛出 值错误("折扣必须在 0 到 1 之间")
返回 原价 * 折扣
尝试:
打印(折扣价(100, 2))
捕获 值错误 为 e: # 异常对象可读 e.消息 / e.类型
打印("出错了:", e.消息)
```
```
# 面向对象(M5b:类/继承/新建)
类 动物:
函数 初始化(自身, 名字): # 「初始化」是构造方法
自身.名字 = 名字 # 「自身」是实例本身
函数 叫(自身):
打印(自身.名字, "在叫")
类 猫 继承 动物:
函数 叫(自身): # 覆盖基类方法
打印(自身.名字, "喵喵")
令 咪咪 = 新建 猫("咪咪")
咪咪.叫()
```
## 当前进度
**M0–M45 全部完成**,逐里程碑的详细记录移到 **[`docs/里程碑.md`](docs/里程碑.md)**
(本 README 只讲「现在能做什么」,要查「哪一版加了什么」看那份)。
**测试现状:2066 项全部通过**(`python -m pytest tests/`),其中 130 余项是三执行器
对拍(树遍历 / Python VM / C VM 输出逐字节一致),另有跨语言宿主对拍
(Rust 101 + 58 + 37 项、JS 62 + 43 项,都与 Python VM 逐字节一致,含三个真实示例
项目的端到端对比)。
**最近两轮(方向三 · AI 可用性)做了什么**:
- **M45**:`tools/eval_ai.py` **AI 跑分表**(45 题 × 2 模型,只读语言规格写代码,
输出逐字相同**且退出码为 0**才算过);**MCP 工具面 3 → 7 个**;三平台
GitHub Releases 自动构建。跑分:一次通过率 **82.2% / 88.6%**,最终通过率
**93.3% / 100%**(详见 [`evals/跑分表.md`](evals/跑分表.md))。
- **M44**:`--lang-spec` 补齐**错误码 / 静态检查码 / 等价 Python 写法**;新增
**`jishi 源码静态检查`**(未定义名 / 遮蔽内建 / 未使用变量 / 可疑相等)。
**下一步**:性能优化(三阶段,见 内部路线图(未公开)「方向四」)
与标准库继续加强(「方向六」,M50)。
## 已经能做什么
- **语法**:变量、算术/比较/逻辑、链式比较(`60 < 分数 <= 90`)、
如果/否则如果/否则、遍历、循环 N 次、当、中断/继续、函数、导入、列表/字典
- **表达力(M7)**:多赋值解包(`令 a, b = [1, 2]`、`a, b = b, a`)、
默认参数(`函数 f(a, b = 10)`)、列表/字典推导式
(`[x*2 遍历 x 在 列表 如果 x>2]`)、文本插值(`` `你好 {名字},今年 {年龄} 岁` ``)
- **异常处理(M5a)**:`尝试`/`捕获 类型 为 e`/`最终`/`抛出 值`;
8 种内建错误类型(`值错误` 等)可抛可抓,基类抓子类,`e.消息`/`e.类型` 可读
- **面向对象(M5b)**:`类` 定义方法、`继承` 复用与覆盖、`新建` 实例化、
自动构造(`初始化`)、实例字段、绑定方法(`自身`)
- **内建函数**:打印、输入、整数/小数/文本、精确、长度、范围、最大、最小、
总和、类型、反转、打开
- **对象方法**:
- 列表:追加 / 插入 / 移除 / 弹出 / 排序 / 反转 / 清空 / 索引 / 计数 / 包含 /
映射 / 过滤 / 排序按 / 归约
- 字典:获取 / 键 / 值 / 包含 / 更新 / 弹出 / 清空
- 文本:拆分 / 替换 / 查找 / 大写 / 小写 / 去空白 / 开头是 / 结尾是 / 包含 / 转整数 / 转小数
- 集合:添加 / 移除 / 丢弃 / 包含 / 并集 / 交集 / 差集 / 对称差 / 清空 / 转列表 / 复制
- 文件:读 / 读行 / 读所有行 / 写 / 写行 / 关闭 / 刷新 / 位置 / 定位
- 精确小数:舍入 / 绝对值 / 转文本
- **语言功能(M23–M34)**:成员测试 `在`/`不在`、同一性 `是`/`不是`、
`超()` 调父类方法、类变量、`断言`、`是实例`;
集合(有序去重 + 交并差)、迭代协议、切片赋值、可选类型标注、
匿名函数、数据流水线(映射/过滤/排序按/归约);
变长参数 `*参数`/`**选项`、星号解包 `令 甲, *余 = …`;
上下文管理器 `用 … 为`、文件对象(`打开`)、自定义对象打印(`文本()` 方法)、
精确小数 `精确(…)`;
**值的显示统一**(空/真/假 中文;打印·文本·插值·REPL 回显一处实现);
**模式匹配** `匹配`/`情形`(单值·多值·守卫·兜底,待匹配值只求值一次)、
**枚举** `枚举`(成员是实例,可取 `.名字`/`.值`、`==` 按身份、`X.全部` 可遍历)
- **中文报错**:精确到行列 + "你是不是想写…"修正建议(错误快照护航)
- **REPL**:表达式回显、多行块输入、帮助/清空命令
- **开发者工具(M21 + M42 + M43)**:
- `jishi lsp` 语言服务器:实时诊断 / 补全 / 悬停文档 / 跳转定义 / 文档符号;
**增量同步**(只重算改动行之后的分词,大文件不再卡);
**M42 补六项**:格式化 / 重命名 / 快速修复 / 签名提示 / 工作区符号 /
语义高亮;配 `editors/vscode-jishi` 语言客户端(零依赖)
- `jishi dap` 调试适配器:断点 / 单步(单步·下一步·跳出)/ **变量(可点调用栈
的任意一帧看)** / 调用栈 / 监视与悬停求值 / 调试控制台;三个执行器行为一致
- `jishi 格式化`:统一缩进与间距,保留注释与字符串原样,幂等且语义不变;
支持整个目录(`--check` / `--write`)
- REPL:表达式回显、多行块、**↑/↓ 跨会话历史**、**Tab 补全**
- `jishi 调试` 调试器:断点 / 单步(进·过·出)/ 看变量 / 看调用栈 /
就地求值;出错时打「出错那一帧的变量 + 调用栈」现场。
**树遍历 / 字节码(`--执行器 vm`)/ C 虚拟机(`--执行器 cvm`)三个执行器
都能调,会话记录逐字相同**(C VM 的就地求值除外,会明确说明)
- `jishi 医生` 环境自检、`jishi 新项目` 脚手架、`jishi 教程` 本地索引
- **标准库(M2 + M10 + M14 + M41,共 19 个中文模块)**:
- 随机:随机整数 / 随机小数 / 随机选择 / 洗牌
- 数学:开方 / 幂 / 四舍五入 / 最大公约数 / 最小公倍数 / 阶乘 / 圆周率 / 三角 / 对数
- 时间:现在 / 今天 / 此刻 / 时间戳 / 星期名 / 加天数 / 高精度计时 / 睡眠
- 文件:写文本 / 读文本 / 追加 / 写行 / 按行读 / 目录操作 / 路径工具
- 表格:读表格 / 挑选 / 筛选 / 排序按 / 汇总 / 追加——数据分析入门钥匙
- 文本:拼接 / 对齐 / 补零 / 判断 / 去前缀后缀 / 格式化
- json(M10):转文本 / 解析 / 读文件 / 写文件(中文不转义)
- 日期(M10):今天 / 格式化 / 加天数 / 减天数 / 相差天数 / 早于 / 晚于 / 相等 / 星期名
- 正则(M10):匹配 / 搜索 / 查找全部 / 替换 / 拆分 / 分组
- 网络(M10):获取 / 提交 / 获取JSON(urllib 薄封装,零第三方依赖,默认 10s 超时)
- 路径(M14):存在 / 是文件 / 是目录 / 绝对路径 / 父目录 / 文件名 / 后缀 / 连接 / 创建目录 / 列出 / 大小(pathlib)
- 加密(M14):摘要 / md5 / sha1 / sha256 / sha512 / 文件摘要(hashlib)
- 压缩(M14):打包 / 解压 / 列出内容(zipfile)
- 系统(M14):系统名 / 环境变量 / 执行 / 退出码 / 主机名(os/subprocess)
- 容器(M41):计数 / 最多 / 按值排序 / 分组 / 取前 / 取后 / 分块(Counter 式统计;模块名不叫「集合」——那是内建函数名)
- 迭代(M41):分组 / 滑窗 / 去重 / 展开 / 取前 / 取后 / 求和 / 计数
- 参数(M41):新建 / 选项 / 标志 / 用法 / 解析(命令行选项解析)
- 日志(M41):级别们 / 设级别 / 取级别 / 设前缀 / 调试 / 信息 / 警告 / 错误
- 测试(M41):用例 / 相等 / 不等 / 为真 / 为假 / 近似 / 包含 / 抛出 / 统计 / 汇总
- **标准库的跨语言宿主(M31)**:上面 **19 个模块在 Node 与 Rust 宿主上都可用**
(M41 新增的 5 个同样五路同宽)
(压缩是手写 zip 容器、网络用子进程同步封装,都与 Python 侧逐字节对拍);
文件读写**换行保真**(写 `\n` 就是 `\n`,同一份程序在两个平台产出相同字节)
- **语法补充(M2)**:尾随逗号(`[1, 2, 3,]`)、括号内跨行书写列表/字典/参数
- **Python 生态桥接(M3)**:
- `导入 math 从 python`、`导入 pandas 从 python 为 数据框`——直接用整个 Python 生态
- Python 对象属性/方法直接访问:`datetime.datetime.now().year`
- 基石函数可直接传给 Python 高阶函数(map/filter/sorted 回调)
- Python 异常自动翻译成中文(文件找不到、权限不足、递归过深…)
- **关键字参数**:`json.dumps(x, ensure_ascii=假)` —— 中文不转义的关键
```python
导入 json 从 python
打印(json.dumps({"姓名": "小明"}, ensure_ascii=假)) # {"姓名": "小明"}
```
基石函数同样支持:`介绍(姓名 = "小红", 年龄 = 8)`
- **教程**:`docs/tutorial/` **全 10 章**已完成(从你好世界到记账程序综合实战,
再到语法糖/沙箱 MCP/包管理),配套示例在 `examples/tutorial/`,示例全可运行
## 教程目录
| 章节 | 内容 |
|------|------|
| [01 你好基石](docs/tutorial/01_你好基石.md) | 运行基石、打印、变量、注释 |
| [02 数与文本](docs/tutorial/02_数与文本.md) | 运算、字符串方法、输入、列表 |
| [03 判断与循环](docs/tutorial/03_判断与循环.md) | 如果/否则、遍历/循环/当、链式比较 |
| [04 函数](docs/tutorial/04_函数.md) | 定义函数、作用域、递归 |
| [05 字典与结构化数据](docs/tutorial/05_字典与结构化数据.md) | 键值对、嵌套、计数器 |
| [06 文件与标准库](docs/tutorial/06_文件与标准库.md) | 文件读写、数学/时间/表格模块 |
| [07 综合实战](docs/tutorial/07_综合实战.md) | 记账程序:需求→设计→实现 |
| [08 语法糖](docs/tutorial/08_语法糖.md) | 多赋值解包/默认参数/推导式/文本插值 |
| [09 沙箱与 MCP](docs/tutorial/09_沙箱与MCP.md) | 沙箱三道保险/统一协议/MCP Server |
| [10 包管理](docs/tutorial/10_包管理.md) | 安装/卸载/列表/依赖解析 |
## 项目结构
```
jishi/ 前端:词法/语法/AST/语义/报错/执行内核/标准库
tokenizer.py 词法分析(缩进栈、全角归一化、中文分词消歧、中文引号)
parser.py 语法分析(递归下降+优先级爬升,链式比较、尾随逗号、容错解析)
ast_nodes.py AST 节点(dataclass, kw_only=True)
errors.py 中文错误体系(E01xx词法/E02xx语法/E03xx语义/E2xxx运行)
interpreter.py 树遍历解释器(作用域链/闭包/对象方法分派/内建函数,默认执行器)
runtime.py 共享运行时语义(方法表/内建/属性/调用/导入,三执行器共用)
opcodes.py 指令集(唯一事实来源,C 头文件由此生成)
compiler.py 字节码编译器(作用域分析/闭包单元/指令带行列)
vm.py Python 参考字节码虚拟机(M4a)
cvm_bind.py C VM 的 ctypes 绑定 + 宿主回调实现(M4b)
ai.py AI 元数据统一数据源:语言卡 / 语言规格 / 错误序列化(M8)
protocol.py 统一执行结果协议(M9.2)
sandbox.py 沙箱运行器(超时/stdout 上限/模块白名单,M9.1)
mcp_server.py MCP Server(stdio 传输,run_script/eval_expr,M9.3)
serialize.py 跨语言字节码序列化(M13.1,JSON 格式 + 版本 + 校验和)
packages.py 包管理:远端索引格式 + 版本约束 + 安装/卸载(M10.2/M14)
debugger.py 调试器(M37 树遍历 / M39 字节码 / M40 C VM;一套会话 + 三个执行器适配)
incremental.py 增量分词(M38 B2:按行复用前缀的 token 与词法状态)
lineedit.py REPL 行编辑(M38 B3:历史 / Tab 补全 / 光标编辑,按键可注入)
langdata.py 语言元数据提炼层(LSP 与 REPL 共用,来自 ai.build_lang_spec)
cli.py CLI 入口(run/--ast/-i/--ai-card/--lang-spec/--sandbox/调试/安装/卸载/列表…)
repl.py 交互式 REPL(回显/多行块/帮助/清空)
stdlib/ 标准库 14 模块:随机/数学/时间/文件/表格/文本/json/日期/正则/网络/路径/加密/压缩/系统
cvm/ C 执行内核(M4b)
bytecode.md 字节码设计文档(指令集/值表示/宿主协议/重入/异常协议)
build.py 一键构建(生成 opcodes.h + gcc 出 DLL/SO,支持 --out)
include/jsvm.h 公开 C ABI 头文件(M9.4,JSVM_ABI_VERSION=1)
include/opcodes.h 指令码头文件(由 opcodes.py 生成,两侧同步)
src/jsvm.c C 虚拟机主循环
node/ Node.js 纯 JS 解释器(零依赖,消费 JSON 字节码;M31 起标准库 14 模块全同步)
rust/ Rust 绑定(M13.3,jishi-ffi crate + 自研零依赖 JSON 解析器)
tests/ 2066 项测试(含 130 余项三执行器对拍 + 跨宿主对拍)
examples/ 示例脚本(含 tutorial/ 10 个教程配套示例、ai/ few-shot 库、embed/ C 嵌入示例、packages/ 包管理示例)
docs/ 语言规格.md、设计决策.md、调试器.md、工具链.md、真实项目.md、embed.md、ai/(系统提示词/提示词指南)、tutorial/ 教程 10 章
assets/ 品牌资产(基石_logo.png,源图 基石_logo.jpeg)
tools/ run_tests.py 测试 / benchmark.py 基准 / build_site.py 文档站 /
loc_ratio.py 行数比统计(基石 vs Python 参考实现) /
build_playground.py 浏览器试玩 / build_wheel.py wheel 打包 /
ci.py 一键全检 / publish_github.py 公开仓库同步(唯一发布通道)
```
## 架构与数据流
```
源码 → tokenizer → parser → AST ──┬─→ Interpreter(树遍历,默认执行器)
└─→ 编译器 → 字节码 ──┬─→ Python VM
└─→ C VM(jsvm.dll)
```
- 三个执行器(树遍历 / Python VM / C VM)共用 `jishi/runtime.py` 的语义,
`tests/test_cvm.py` 对拍保证「换执行器不改变任何可观察行为」
(stdout 与报错逐字节一致)。
- 默认仍走树遍历;`jishi/vm.py` / `jishi/cvm_bind.run_source_c` 可切换。
性能:C VM 提速最高 46x(见 tools/benchmark.py,字符串拼接为架构边界)。
- **AI 原生能力**(M8/M9)架在 AST 与报错之上:`jishi/ai.py` 从
tokenizer/parser/runtime/stdlib 动态收集元数据,产出语言卡、语言规格、
JSON 结构化报错;`jishi/mcp_server.py` 把执行能力暴露给任意 MCP 宿主。
## 环境要求
- **Python ≥3.10**(运行时零第三方依赖;测试用 pytest,
`tools/make_logo.py` 图像处理用 pillow——均为开发期工具,与运行时无关)
- **使用(源码安装)**:`pip install git+https://github.com/benxiaoniao/JISHI.git`
即含预编译 C VM,无需 gcc(`tools/build_wheel.py` 打出的 wheel 内带 DLL/SO)
- **从源码开发**:需要 C 编译器构建 C VM(`python cvm/build.py`),
装 MinGW-w64(Windows)或 zig / gcc 均可;无编译器也能跑树遍历解释器,
C VM 自动降级、其余功能照常
- Windows 注意:venv 可执行文件在 `Scripts/` 而非 `bin/`。
## 开发:运行与测试
```bash
# 运行脚本 / 交互式 REPL / 查看 AST
python -m jishi.cli examples/01_猜数字.jsh
python -m jishi.cli -i
python -m jishi.cli examples/01_猜数字.jsh --ast
# 全部测试
python -m pytest tests/
# 一键构建 C 虚拟机 DLL
python cvm/build.py
# 性能基准(树遍历 vs C VM)
python tools/benchmark.py
```
## 关键技术决策(详见 docs/设计决策.md)
- **D1 技术栈透明**:Python 前端 + C 内核 + Python 生态桥接,不 fork/patch CPython
- **D2 分词消歧**:关键字粘连检查只针对**多字关键字**(如果/循环/导入…),
单字关键字(类/当/真/空/非/令)不做前缀检查,否则 `类型`/`当时`/`空间` 等日常词全被误伤。
- **D3 全角标点**:字符串与注释外做一对一归一化(`=`→`=` 等);全角空格 U+3000 在缩进中报错。
- **D4 执行模型**:树遍历 → 字节码 + C VM(M4),语法不变,对拍测试保证一致。
- **D5 标准库**:中文 API 是薄壳,绝不重造轮子,真实价值来自 Python 生态。
- **D7 对象方法分派**:方法表按类型分派返回闭包,列表方法原地修改、文本方法返回新值。
- **D8 REPL**:顶层表达式非空回显(真/假/空中文化);空行强制结束多行块。
- **D11 异常对象模型(M5a)**:异常即 `JishiError` 实例,`e.消息`/`e.类型` 可读;
捕获条件按类型名匹配,用 isinstance 判断(基类抓子类)。
- **D12 语法用中文助词(M5a)**:`捕获 值错误 为 e:`、`继承 基类:` 用「为/继承」
等助词连接,不用冒号嵌套的类 Python 写法,读起来更像自然语言。
## 已踩过的坑(避免重踩)
1. `re.fullmatch` 对 `[...]` 单字符类多字符永远 False,要用 `[...]+` 运行正则。
2. dataclass 继承字段顺序 → 全部 `@dataclass(kw_only=True)`。
3. 全角引号需配对表(`“` 配 `”`),不是同字符闭合。
4. 块语句以 DEDENT 结束,parser 主循环不能要求 NEWLINE。
5. `与/或` 右操作数要用 `parse_expr(prec+1)` 而非 `parse_unary()`,否则比较运算符逃逸。
6. `dump_ast` 用 `vars()` 前先判类型(tuple/list 无 `__dict__`)。
7. Windows venv 路径 `Scripts/` 不是 `bin/`。
8. 尾随逗号:列表/字典/调用参数/函数参数四处循环都要支持(M2 已修)。
9. `数学.幂` 用 `math.pow` 返回 float,整数期望 int → 用 `**` 运算符。
10. `导入 文本` 会遮蔽内建 `文本()` 转换函数(与 Python 导入遮蔽一致,文档已注明)。
11. 调用括号内的 `名字 = 值` 一律按关键字参数处理(parser 调用上下文无赋值语义)。
12. `_lookup` 查英文 True/False/None 的提示要在"你是不是想写"建议**之前**抛出,
否则编辑距离建议会给出误导性结果。
13. 三执行器共享 runtime 语义,但异常穿透调用栈的「重入边界」必须一致
(vm.py 的 stop_at / C VM 的 stop_depth),否则类方法里 `抛出` 会被错误接住。
14. `非` 的优先级必须**低于比较运算**(M23 修正)。写成一元(最紧)会让
`非 年龄 >= 18` 变成 `(非 年龄) >= 18` 恒为假——**静默给错答案**,
项目教程自己就踩过。现按 Python `not` 语义:`非` 吃掉右边的比较表达式,
吃不掉 `与/或`。
15. 新增比较运算码(`在`/`不在`/`是`/`不是`)要放在 **6–9**,不能占用 0–5:
0–5 是 C VM 的 `compare_fast` 快路径,6 以上自动回落宿主回调
`host->compare`——这是「加语义比较运算符零 C 改动」的前提(见 opcodes.CmpOp)。
16. C VM 里同一个函数每次跨边界都会新建 `CvmFunction` 包装,直接按 `id()`
判断同一性会与另两个执行器结果相反(`f 是 g`)。修法是按 `JVal.v.u`
(底层 `JsFunc*` 指针)缓存包装(见 `cvm_bind.CvmHost._func_cache`)。
17. 加比较类关键字(`不在`/`不是`)必须同时加进 tokenizer 的
`_GLUE_CHECK_SKIP`:它们本身是常用词前缀,否则 `不在列表`、`不是我`
这类正常变量名会被「关键字粘连」检查误报。
## 路线图
**M0–M45 已全部完成**(逐里程碑见 [`docs/里程碑.md`](docs/里程碑.md))。
**定位(2026-09 调整)**:北极星从「最容易被大模型正确生成」务实调整为
**「健全语言自身能力,让编程者方便实现意图,出问题能快速定位」**;
「AI 友好」降为辅助线带着走。
**语法面已冻结**(探针 50 项 / 可用 42 / 缺口 8 项**全部已判定**,
`tools/probe_capabilities.py` 可复跑)。
**下一步**(M46 起):
- **性能优化(M46–M48,三阶段)**:C 侧原生列表/字典 → C 侧字符串/JSON → 字节码优化。
现状基准:纯计算 11–48x 于树遍历,列表 3.1x,字符串 0.39x(反而更慢)。
- **自主分发(M49,腾讯轻量云,规划中)**:放弃 PyPI,自建索引与发行包。
- **标准库继续加强(M50)**:新增 `统计` / `编码` / `配置` / `html` / `对比` / `标识`
+ 既有模块补缺(排列组合、文本截断、计时…)。
完整规划(三阶段明细、准入标准、不做清单、度量体系、遗留项逐条结论)见
**内部路线图(未公开)**——那是唯一的路线图。
每个阶段维持既有纪律:**可演示成果 + 测试护航 + git 提交**;
新特性准入三关:**真实需求驱动 / 可度量验收 / 投入产出比**,
外加「关 0」:能用内建/标准库实现的,不碰语法。
## 设计原则
1. **像 Python 一样简洁**:缩进划分代码块,语法零冗余。
2. **中文是母语**:报错信息全中文,精确到行列,附"你是不是想写…"修正建议。
3. **生态即生命**:绝不重造标准库,薄封装 Python 生态。
4. **透明不吹牛**:技术栈如实标注,走长期演进路线。
## 声明
本项目以 **MIT-0**(MIT No Attribution)许可证发布,全文见 [`LICENSE`](LICENSE)——
可自由使用、修改、分发、商用,**无需署名**。只期望这个语言(或者说这个工具)能有所用途,
毕竟做个中文的编程语言,是我一直以来的夙愿,但是一直受限于没有相关的技术能力,所以迟迟没有动手。也有幸在这个时代可以使用大模型来帮助自己塑造自己期望的软件产品,所以我就试着去实现自己的想法了,大家如果有什么建议也可以和我说,我的邮箱是benxiaoniao@outlook.com