言知项目后续方向建议

言知项目后续方向建议

🔥 高优先级 --- 立即可做

1. 修复 REPL(交互式环境) 目前 repl.py 已有雏形但用旧版 lexer/parser,且不支持多行输入。完善后可以方便地测试语言特性。

  • 支持多行输入(块结构 :/结束)
  • 命令历史(readline)
  • 彩色错误输出
  • Tab 补全

2. 模块/导入系统落地 runtime/module_loader.py 已存在,但还没集成到语言层面。实现 导入 "file.yan" 语法,让言知项目可以拆分为多个文件。

3. REPL + 模块系统 = 可用的开发体验 有了这两项,就能在 REPL 中 导入 模块进行快速开发迭代。


📦 中优先级 --- 生态建设

4. 完善 LSP 服务器 lsp/server.py 已有诊断功能,可以扩展:

  • 跳转定义(go-to-definition)
  • 悬停提示(hover --- 已有雏形)
  • 自动补全
  • 语义高亮

5. 标准库扩展

  • math.yan --- 数学函数(sin/cos/log 等)
  • str.yan --- 字符串工具(分割、替换、大小写等)
  • http.yan --- HTTP 客户端

6. 宏系统 runtime/macro_env.py 已存在。支持 宏 关键字可以在编译期做代码变换。


🚀 高影响力 --- 性能 & 质量

7. 调试器

  • 源码级断点
  • 变量查看
  • 调用栈追踪

8. 更多 VM 优化

  • 常量折叠
  • 死代码消除
  • 内联缓存

9. 包管理器完善 pkg_manager.py 已有雏形。建立言知包生态(类似 npm/pip)。


🎯 我个人推荐

先做 REPL 完善 + 模块系统。这两项是"开发者体验"的基础,也是后续做 LSP、调试器、包管理的前提。做完后,言知就从"一个能自举的编译器"升级为"一个有实用价值的编程语言环境"。

实践

先做 REPL 完善 + 模块系统

输出

已完成的主要功能

  1. ✅ 自举编译器 --- AST → Tokenizer → Parser → Compiler 四模块全部用言知编写,到达两轮自编译不动点
  2. ✅ 闭包 --- 定义时捕获自由变量 (capture-by-value)
  3. ✅ 尾调用优化 (TCO) --- fib(30): 91s → 0.89ms (102,696x)
  4. ✅ 模块导入系统 --- 导入 "path.yan" 支持搜索路径和循环导入检测
  5. ✅ REPL v2.0 --- 重写为字节码 VM 管线,多行输入、变量持久化
  6. ✅ 标准库 --- File I/O + JSON 完整支持
  7. ✅ For循环 (遍历) --- 基于迭代器,支持 break/continue
  8. ✅ 字符串插值 $"..." --- 解析时反糖化
  9. ✅ 错误系统 --- 统一异常层次 + 行号 + 美化输出

潜在下一阶段方向

您提到要继续对话。以下是一些自然的方向:

  • 类型检查器 --- src/yanzhi/typechecker/ 目录已存在但似乎还是空的
  • 自我托管 CLI --- 用言知编译器编译自身并作为独立工具运行
  • 标准库扩展 --- 网络/HTTP、正则表达式、数学函数
  • 代码优化 --- Tokenizer 是目前最大瓶颈(占编译时间 60%+)
  • 文档/教程 --- 编写语言参考手册

您有什么具体想做的吗?或者有没有之前被打断的任务需要继续?

类型检查器

完成后输出

基于项目计划分析,以下是三个最合适的下一步方向:

推荐下一步

1. 🎯 模式匹配 匹配...情况...(语法模式,非关键字)

语言核心新特性。遵循"语法化"哲学------用虚词+标点构成语法模式,非新增关键字:

yanzhi

复制

复制代码
匹配 x:
  情况 0 那么 "零"。
  情况 1 那么 "一"。
  情况 n 如果 大 n 10 那么 "大于10"。
  否则 "其他"。
结束。

实现工作量在 parser(新模式识别)、AST(新增 Match/Case 节点)、compiler_bc(生成 LOAD+JUMP 链)、typechecker、测试。

2. 🔧 言知语言报错信息增强(phase 3 未完成项)

自举编译器中的错误消息转为中文可读格式。运行时错误携带源码位置、美化显示。

3. 🚀 LSP 功能完善:跳转定义 + 自动补全(phase 4 P2)

从当前基础 LSP 扩展到真正的 IDE 体验------转到定义、查找引用、自动补全。


模式匹配是最具冲击力的新能力,能充分体现言知"语法模式"的核心理念。你倾向于哪个方向?

下一步 1. 🎯 模式匹配 匹配...情况...(语法模式,非关键字)

下一步

您提到要继续对话。以下是一些自然的方向:

  • 类型检查器 --- src/yanzhi/typechecker/ 目录已存在但似乎还是空的
  • 自我托管 CLI --- 用言知编译器编译自身并作为独立工具运行
  • 标准库扩展 --- 网络/HTTP、正则表达式、数学函数
  • 代码优化 --- Tokenizer 是目前最大瓶颈(占编译时间 60%+)
  • 文档/教程 --- 编写语言参考手册

您有什么具体想做的吗?或者有没有之前被打断的任务需要继续?

回答说从三个文档起步

前四项全部完成 (或存在过度工程化),唯一真正需要做的事是文档------这是用户/贡献者上手的第一入口。一个连 README.md 都没有的项目,外面的人根本无法判断这是什么东西。

要我开始编写文档吗?建议从三个文档起步:

  1. README.md --- 项目概述、安装、5 行示例、构建状态
  2. 语言参考手册 --- 完整语法规范
  3. 标准库 API 文档 --- 每个模块的动词签名和示例

文档完成,有了新的任务!

相关推荐
Joy T38 分钟前
Agent 确定性上下文设计:从 Prompt 参数注入到能力分层
java·开发语言·微服务·架构·prompt·agent context
专注仿真4 小时前
引擎扩展性与集成设计深度剖析:从 14 个扩展点到 DIS→HLA 演进之路
开发语言·算法·仿真引擎·推演引擎
Best-Wishes4 小时前
科来网络分析系统(技术交流版)使用说明书
开发语言·junit·php
代码不停5 小时前
自动化测试(java)
java·开发语言·selenium·自动化
滕州市燕猫虎计算机科技工作室个体工商户5 小时前
《Rust程序设计》学习笔记八:结构体
笔记·学习·rust·rust程序设计
别动我齐刘海6 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
鬼手点金7 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
爱上网的小舟7 小时前
星际战士2启动错误怎么办?5种游戏报错解决方法
开发语言·php
xier_ran8 小时前
【infra之路】AI 编译器学习笔记(二):重拾 C++——移动语义与 LLVM 风格的类型转换
人工智能·笔记·学习
阿里嘎多学长8 小时前
2026-10-12 GitHub 热点项目精选
开发语言·程序员·github·代码托管