当前位置:  开发笔记 > 编程语言 > 正文

描述一些东西,我应该使用Backus-Naur表格吗?

如何解决《描述一些东西,我应该使用Backus-Naur表格吗?》经验,为你挑选了2个好方法。

我想描述一个复杂的脚本和可能的编程语言.我想在做任何事情之前用Backus-Naur形式描述它(不包括虚拟/样本脚本代码)

还有另一种形式来描述Backus-Naur形式的语言吗?我应该考虑哪些替代方案?



1> jheriko..:

显而易见的替代方案是扩展Backus-Naur形式,但是很少有其他可以使用的形式,我发现了一些快速搜索的链接:

增强的BNF

Wirth语法表示法

Van Wijngaarden语法

我个人会坚持使用BNF/EBNF,因为在某种形式下使用它的信息和工具很普遍.像bison或yacc这样的工具可以帮助从这样的语法生成解析器,并使生成解释器变得非常简单.



2> Per Stilling..:

这取决于你想要描述语言的正式程度.Backus-Naur Form用于描述无上下文的语法.因此,如果你想描述一个无上下文的语法,Backus-Naur Form可能就是这样,因为它是描述这些语言最广为人知的形式.

但是,如果您希望描述语义或更复杂的语法,则需要使用其他方法.如果您还想描述您的语义,则需要根据语言特征(如使用递归)在小步或大步语义之间进行选择.

请注意,如果您的语法不能使用无上下文语法表达,那么BNF根本不足以表达您的语言,您可能需要考虑用上下文敏感语法描述您的语言.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有