性能优化:JavaScript SSA 前端解析方案的替代探索
YAK 的 SSA 构建系统旨在打造通用的 SSA 后端框架,先前采用 Antlr4 作为通用前端,将多种语言统一转换为 AST,再译为 SSA IR,以驱动静态审计逻辑。但随着拓展,测试 JavaScript 生成 SSA IR 时,Antlr4 在解析某些语言的特定语法结构时存在效率低下的问题。
为提升 JavaScript 静态分析效率,引入微软 TypeScript-Go 项目中的 Go 实现 parser 替代 Antlr 前端,显著优化性能。本文聚焦于基于 TypeScript-Go AST 构建 JavaScript SSA 表达形式,探讨面对表达式语句、解构赋值、控制流等复杂结构时的通用 SSA 生成策略,并分享过程中踩的坑与实战经验,为多语言静态审计中应用 SSA IR 提供启发与参考。
