3
如何为解析器指定语法?
我已经进行了很多年的编程,但是仍然需要花费我很长时间的一项任务是为解析器指定语法,即使付出了如此多的努力,我也永远无法确定我想出的语法是否很好(以任何合理的方式衡量“良好”)。 我不希望有一种算法可以自动执行指定语法的过程,但是我希望有一些结构化问题的方法可以消除当前方法的大部分猜测和反复试验。 我的第一个念头是阅读解析器,而我已经做了一些,但是我在该主题上阅读的所有内容都将语法视为既定的(或者琐碎到可以通过检查指定的语法),并专注于将这个语法翻译成解析器的问题。我对之前的问题很感兴趣:首先如何指定语法。 我主要对指定一个正式代表具体示例(正例和负例)的语法的问题感兴趣。这与设计新语法的问题不同。感谢Macneil指出了这一区别。 我从来没有真正欣赏过语法和语法之间的区别,但是现在我开始明白它了,我可以通过说我主要对指定语法来强制执行一个语法的问题来加强我的第一说明。预定义的语法:就我而言,这种语法的基础通常是肯定和否定示例的集合。 如何为解析器指定语法?是否有一本书或参考资料是事实上的标准,用于描述最佳实践,设计方法以及有关为解析器指定语法的其他有用信息?在阅读解析器语法时,我应该重点注意什么?