在看龙书,看得很吃力,小白问题,语法制导?
在3.7节从正规表达式到NFA,提到:
“这个算法是语法制导算法,该算法使用正规表达式的语法结构来指导构造过程”
我看了下面的例子,还是没有体会出“语法制导”的意思
能不能用白话给解释一下,谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在3.7节从正规表达式到NFA,提到:
“这个算法是语法制导算法,该算法使用正规表达式的语法结构来指导构造过程”
我看了下面的例子,还是没有体会出“语法制导”的意思
能不能用白话给解释一下,谢谢
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
说白了,就是告诉你regex是拿来干什么,有什么用,怎么使用的意思."语法制导",这个名词真难听
按照语法构造AST或者gen IR。
yacc语法匹配后面不是有个语义动作吗?一般用这个语义动作去build AST,这就是语法制导。
[ 本帖最后由 prolj 于 2008-11-24 12:10 编辑 ]
谢谢楼上两位,虽然还是有点迷糊
我在理解一下
xdshting朋友,共同学习,我也在学习龙书。
和大家讨论交流,确实又学习到了许多知识。
刚才仔细读了龙书第3.7章节,书中说,
“The algorithm is syntax-directed in
that it uses the syntactice structure
of the regular expression to guide the
construction process."
后来我又查了一下directed的含义,金山词霸里
的解释有这么几个:
1、有指导的
2、有管理的
3、定向的
4、被控制的
从英语理解上,syntax-directed也是一个形容词,
所以我个人一些粗陋理解是,
”该算法是有语法指导的,使用正则表达式的语法结构
来指引构建过程。“
后来的图3.30,给出了一个正则表达式,(a|b)*abb的
语法结构图,然后通过 例3.16,结合图3.30一步步构
造这个正则表达式的NFA。
有什么理解错误的地方,请各位朋友批评指出。
syntax-directed 是合成词,看 direct 的意思。
[ 本帖最后由 abutter 于 2008-12-6 11:16 编辑 ]
其实不是什么“语法制导”
是说这个算法是面向语法的,就是说用了正则表达式来建立语法规则
所谓面向语法,就是说这个算法的处理对象是语法结构
syntax-directed 在我的stardict上翻译为面向语法,词典为朗道英汉5.0
语法分析就是对token进行语法匹配,匹配的话,匹配的是一个具体的语句,如果匹配成功把这个匹配语句的IR构造出来,这就是语法制导。
不匹配就不构造IR了,给出错误信息就退出。
别那么迷信龙书,编译入门的书写的不错的多了去了,能让你明白的就是好书。
真是吐血
买了一本龙书 ,第二版,回来一看,是英文版的
估计要浪费了。
你也太粗心了吧,不如转给我吧,我正想看这本书