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

我在哪里可以获得学习EBNF的材料?

如何解决《我在哪里可以获得学习EBNF的材料?》经验,为你挑选了2个好方法。

延伸巴克斯 - 诺尔形式:EBNF

我是解剖概念的新手.在哪里可以获得足够的易读性和遵循材料来编写boost :: spirit库的语法,它使用类似于EBNF的语法?

目前我正在研究维基百科的EBNF.



1> Eugene Yokot..:

BNF本身很简单,但你需要习惯编译器编写者的思维方式.它们不一定容易阅读,但以下是加州大学伯克利分校和斯坦福大学的讲义.

伯克利CS 164:讲义

斯坦福大学CS143:讲义



2> Norman Ramse..:

维基百科的文章是准确的。如果有访问权限,请绝对阅读Wirth关于EBNF 的原始文章。

要知道的另一件事是,EBNF旨在简化针对每种语法结构在开始时都具有识别关键字的语言的手写递归下降解析器的需求。花括号转换为while循环;方括号(可选的东西)转换为if,替代项转换为if-then-elsecase语句。如果您可以通过这种方式来设计语言,那么您可以快速关闭解析器给出良好的错误消息。

唯一令人厌烦的地方是当您使用一种语言时,其中的中缀运算符具有许多不同的优先级。为此,您需要Dave Hanson的论文《表达式的紧凑递归-下降解析》。也许普林斯顿大学的技术报告系列有免费版本,您可以随时查看Hanson C前端中的代码。

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