我想知道编程语言开发人员如何验证并证明他们的语法是正确的。假设我为一种新语言创建了一个新语法。我可以通过提供不同类型的测试程序,使用单元测试工具测试我的语法。但是,我永远不会 100% 确保我的语法是正确的。语言开发人员如何确保他们的语法在现实世界中是正确的?
假设我用铅笔和纸为一种新语言创建了一个语法。但是,我犯了一个错误,我的语法接受以 + 结尾的表达式,如 2+2+。如果我没有发现错误,我将使用这个不正确的语法来实现我的语言。经过实施和单元测试,我可以找到错误。在开始任何实施之前是否可以找到它?
当然,我可以使用铅笔和纸(推导等)输入一些示例输入来尝试我的语法,但我可能会错过一些极端情况。有没有更好的方法或者在真正的语言开发人员中如何测试他们的语法?