当前开发进度
项目状态
当前已完成:
- 词法分析器
- 语法分析器
- 语义分析器
- 中间代码生成
- 代码优化器
- 目标代码生成
开发进度
已完成
- 词法分析器基础功能
- 基本的 Token 识别
- UTF-16 字符支持
- 多行字符串支持
- 注释处理
- 错误处理和恢复
- 语法分析器基础功能
- 表达式解析
- 语句解析
- 函数声明
- 错误处理和恢复
- 语义分析器基础功能
- 类型检查
- 作用域分析
- 变量初始化检查
- 函数调用检查
- 中间代码生成器基础功能
- 表达式生成
- 语句生成
- 函数生成
- 基本块生成
进行中
- IR 优化器基础功能
- 常量折叠优化
- 死代码消除
- 基本块合并
- 公共子表达式消除
- 循环优化
- 内联优化
- 词法分析器增强功能
- UTF-8 字符支持
- 中文标识符支持
- 语法分析器增强功能
- 作用域分析
待开发
- 目标代码生成
- 指令选择
- 寄存器分配
- 代码生成
已完成功能
词法分析器 (Lexer)
- 基本的 Token 识别
- UTF-8/UTF-16 编码支持
- 中文标识符支持
- 多行字符串支持
- 状态机实现
- 错误处理和恢复机制
语法分析器 (Parser)
- 基本表达式解析
- 字面量表达式
- 标识符表达式
- 一元表达式
- 二元表达式
- 赋值表达式
- 函数调用表达式
- 语句解析
- 表达式语句
- 变量声明语句
- 块语句
- if 语句
- while 语句
- for 语句
- return 语句
- break 语句
- continue 语句
- 函数声明语句
- 类声明语句
- 错误处理
- 错误恢复机制
- 恐慌模式
- 同步点机制
- 访问权限控制
- public/private/protected 修饰符
- 成员访问控制
语义分析器 (Semantic Analyzer)
- 基本框架搭建
- 类型检查
- 作用域分析
- 变量初始化检查
- 函数调用检查
中间代码生成器 (IR Generator)
- 基本框架搭建
- 表达式生成
- 常量表达式
- 变量表达式
- 二元表达式
- 函数调用表达式
- 语句生成
- 赋值语句
- 条件语句
- 循环语句
- 返回语句
- 函数生成
- 函数声明
- 参数处理
- 基本块生成
代码优化器 (IR Optimizer)
- 基本框架搭建
- 常量折叠优化
- 死代码消除
- 基本块合并
- 公共子表达式消除
- 循环优化
- 循环不变量外提
- 循环展开
- 循环融合
- 内联优化
IR 节点 (IR Node)
- 基本框架搭建
- IR 节点类型定义
- 基本节点类型
- 操作数类型
- 指令类型
- 基本块类型
- 函数类型
- 控制流图支持
- CFG 构建
- 前驱/后继分析
- 基本块关系维护
- SSA 形式支持
- 变量定义追踪
- 使用-定义链维护
- PHI 节点支持
- 单元测试
- 节点创建和操作测试
- 控制流图测试
- SSA 功能测试
进行中的工作
- 实现循环优化器
- 完善优化器测试用例
- 改进优化器性能
- 准备开始目标代码生成器的设计
- 实现 AST 到 IR 的转换
下一步计划
- 完成循环优化器的实现
- 实现内联优化器
- 开始设计目标代码生成器
- 完善文档和注释
- 实现 IR 生成器
遗留问题
- 需要添加更多的单元测试用例
- 需要完善错误信息的国际化支持
- 需要优化内存使用
- 需要添加性能测试
- 需要完善优化器的文档