DSL KIT

众所周知,宏特性编写的门槛相对较高,而 DSL 可以认为是一个更大范围的宏,需要跟踪的细节更多,复杂度会更高。 dslkit

随着复杂度的提升,开发者需要投入的精力呈几何倍增长,其中一部分是必须花费的精力(蓝色),还有一部分是额外付出的(黄色),我们不希望 DSL 的开发需要专家级的编译器大师水平才可以胜任。

所以 DSL Kit 会提取 DSL 创建的一些共性,并提供一个工具包,来消除那些额外的非必要的付出(黄色)。

第一阶段我们期望提供易于声明式地指定 BNF 文法,并自动为 DSL 生成语法解析器,消除不得不手动编写解析器的复杂性。

第二阶段提供更详细的检查/分析/优化能力,例如借鉴“属性语法“,将语义附加于声明式语法上,结合编译器提供静态检查能力,在编译期更多的帮助开发者确保 DSL 上下文的正确性。