我正在创建一种新的领域特定语言。你如何测试一种语言,或者你可以用一种语言做些什么(转换、编译、检查)。 学习最佳实践的良好引用或起点是什么?
最佳答案
您可以以测试先行的方式构建编程语言:
- 用您正在创建的语言创建脚本
- 通过调查其副作用断言该脚本有效。您可以通过例如用宿主语言(机器语言)创建单元测试,用新语言执行脚本。
如果您想了解有关如何创建编程语言的更多信息,“The Definitive ANTLR Reference”一书是一个很好的起点。
下面是一个非常有用的测试新语言语法的模式:
- 解释脚本并构建 AST
- 从 AST 生成新语言的代码
- 从生成的代码生成 AST
- 断言两个 AST 结构相同
有时断言从两个 AST 生成的代码是相同的会更方便。
像构建语言一样构建测试:
- 词汇
- 句法
- 语义
关于language-agnostic - 关于测试领域特定语言的好的引用资料有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1298243/