路线图
进度表
表格状态说明
| 标记 | 含义 | 标记 | 含义 | 标记 | 含义 | 标记 | 含义 |
|---|---|---|---|---|---|---|---|
| ❌ | 尚未开始 | 🔜 | 即将开始 | 🔛 | 正在进行中 | ✅ | 已完成 |
| 🕓 | 排期中 | ♾️ | 时间待定 | ❗ | 需要确认 | 🚫 | 将不实现 |
| 🔧 | 需要优化 |
语言设计与规划
| 工作项 | 子工作项 | 总体进度 | 细节设计 | 功能实现 | 测试用例 | 开始时间 | 完成时间 | 备注信息 |
|---|---|---|---|---|---|---|---|---|
| 语言设计与规划 | 语法设计 | 🔛 | 🔛 | / | / | 2025-01-03 | ♾️ | |
| 类型系统 | 🔛 | 🔛 | / | / | 2025-01-03 | ♾️ | ||
| 高级特性 | ❌ | ❌ | / | / | ♾️ | ♾️ |
核心工具链
| 工作项 | 子工作项 | 总体进度 | 细节设计 | 功能实现 | 测试用例 | 开始时间 | 完成时间 | 备注信息 |
|---|---|---|---|---|---|---|---|---|
| 分析器 | 实现 词法分析器 (Lexer) | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | |
| 实现 语法分析器 (Parser) | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 编译 / 解释器 | 实现 语法检查 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | |
| 实现 语义分析 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 实现 中间代码生成 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 目标代码生成 (或直接解释执行) | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 编译优化 | 常量折叠 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | |
| 循环展开 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 内联优化 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 其他优化 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 调试工具 | 断点 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | |
| 变量监控 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 其他 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ |
生态
| 工作项 | 子工作项 | 总体进度 | 细节设计 | 功能实现 | 测试用例 | 开始时间 | 完成时间 | 备注信息 |
|---|---|---|---|---|---|---|---|---|
| 标准库 | 数据结构 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | |
| I/O | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 网络通信 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 内置加密工具类 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | 参考 Crypto.哈希散列:MD5、SHA1、SHA2、SHA3、RIPEMD-160 加解密:AES、DES、Rabbit、RC4、Triple DES And more ... | |
| 内置 XML, JSON 解析库 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 更多 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 日志模块 | 日志门面接口 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | |
| 日志分级与格式规范 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 并发模型设计 | 进程调度机制 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | |
| 线程共享资源管理 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 协程切换优化 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 包管理器 & 依赖 | 发布依赖 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | |
| 版本控制 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 依赖解析 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 依赖冲突 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 开发环境支持 Language Server Protocol(LSP) (VSCode, IntelliJ) | 语法高亮 | ❌ | ❌ | ❌ | ❌ | VSCode: 2025-01-10 IntelliJ: ♾️ | ♾️ | |
| 代码补全 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 格式化工具 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 静态代码分析 Linter | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 其他 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ |
测试
| 工作项 | 子工作项 | 总体进度 | 细节设计 | 功能实现 | 测试用例 | 开始时间 | 完成时间 | 备注信息 |
|---|---|---|---|---|---|---|---|---|
| 测试 | 确定测试框架 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | |
| 单元测试 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 集成测试 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 性能基准测试 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 其他测试 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ |
文档与社区建设
| 工作项 | 子工作项 | 总体进度 | 细节设计 | 功能实现 | 测试用例 | 开始时间 | 完成时间 | 备注信息 |
|---|---|---|---|---|---|---|---|---|
| 文档 | 文档框架 | ✅ | / | / | / | 2025-03-22 | 2025-03-22 | |
| 语言规范 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 教程 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| API 文档 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 示例代码 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 交互式学习环境 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | ||
| 社区 | 贡献指南和代码规范 | 🔧 | ❌ | ✅ | / | 2025-01 | ♾️ |
后续维护迭代
| 工作项 | 子工作项 | 总体进度 | 细节设计 | 功能实现 | 测试用例 | 开始时间 | 完成时间 | 备注信息 |
|---|
未来
| 工作项 | 子工作项 | 总体进度 | 细节设计 | 功能实现 | 测试用例 | 开始时间 | 完成时间 | 备注信息 |
|---|---|---|---|---|---|---|---|---|
| 主流开源项目驱动 | 数据库驱动 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | 例如:MySQL, PostgreSQL, redis, SQLite, etc... |
| 其他语言打通 | 实现与其他语言互相调用 | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ | 例如:Java, TypeScript, Python, Go, etc... |
| 实现自举 | (待确定) | ❌ | ❌ | ❌ | ❌ | ♾️ | ♾️ |
内容描述
一、语言设计与规划
-
明确设计目标
- 确定语言定位(通用型、领域专用型、教学型等)和核心特性(如静态类型/动态类型、编译型/解释型)。
- 参考现有语言(如 Python 的简洁性、Rust 的内存安全特性),结合用户需求设计语言范式。
-
语法设计
- 定义词法规则(标识符、关键字、运算符等)和语法结构(如 BNF 或 EBNF 范式),可通过工具如 ANTLR 生成解析器。
- 示例:早期 Python 采用可读性强的缩进语法,显著降低学习门槛。
-
语义与类型系统
- 设计类型系统(静态 / 动态、强类型 / 弱类型)和语义规则(如作用域、生命周期管理)。
- 需考虑类型推导、泛型支持等高级特性。
二、核心工具链开发
-
词法分析器(Lexer)与语法分析器(Parser)
- 使用工具如 Flex / Bison 或手动实现,将源代码转换为抽象语法树(AST)。
- 示例:Rust 早期使用 LL(1) 文法解析器,后改为递归下降解析器以提高灵活性。
-
编译器/解释器实现
- 前端:完成语法检查、语义分析和中间代码生成(如 LLVM IR)。
- 后端:实现目标代码生成(如机器码、字节码)或直接解释执行。
- 可选工具:LLVM 用于优化和跨平台支持,JVM/CLR 用于托管执行环境。
-
优化与调试工具
- 编译优化:常量折叠、循环展开、内联优化等。
- 调试器:集成断点、变量监控功能,参考 GDB 或 VS Code 调试协议。
三、生态与工具链扩展
-
标准库设计
-
提供基础功能(如 I/O、数据结构),需兼顾通用性和性能。
-
示例:Java 标准库涵盖集合框架、网络通信等模块。
日志模块
- 日志门面接口:定义统一的日志抽象层接口(类似 SLF4J),支持动态绑定不同日志实现(如文件、网络日志)
- 日志分级与格式规范:实现 DEBUG/INFO/WARN/ERROR 多级日志体系,支持可扩展的格式化模板(如时间戳、线程 ID 等字段)
-
-
并发模型设计
- 进程调度机制:实现进程间隔离、资源分配策略(如优先级调度),并支持 IPC 通信机制(管道、共享内存等)
- 线程共享资源管理:设计线程锁(互斥锁、读写锁)、条件变量等同步原语,防止数据竞争和死锁问题
- 协程切换优化:基于用户态调度的协程切换机制,支持异步 I/O 和纤程调度,减少上下文切换开销
-
包管理与依赖管理
- 开发包管理器(如 npm、Cargo),支持版本控制、依赖解析和发布。
- 需解决依赖冲突和安全性问题(如漏洞扫描)。
-
开发环境支持
- 语法高亮、代码补全:为 IDE(如 VS Code、IntelliJ)开发插件。
- 格式化工具(如 Prettier)、Linter(如 ESLint)提升代码质量。
四、测试与验证
-
测试框架
- 单元测试:验证语言核心功能(如运算符行为、函数调用)。
- 集成测试:模拟复杂场景(如并发、内存泄漏检测)。
-
性能基准测试
- 对比主流语言(如 Python、Go)的执行效率,优化热点代码。
- 工具:BenchmarkDotNet、JMH。
五、文档与社区建设
-
文档体系
- 编写语言规范、教程和 API 文档,参考 Python 官方文档风格。
- 提供示例代码和交互式学习环境(如 Jupyter Notebook)。
-
社区与最佳实践
- 建立开源社区,制定贡献指南和代码规范。
- 推广框架和工具链(如 Rust 的 Actix-web、Python 的 Django)。
六、后续维护迭代
七、未来
重构编程语言底层,实现自举