编译原理文法知识通俗趣味理解

在正式介绍文法的知识之前,先来看一下西天取经团队成员的文法定义,以便对文法有个感性认识。      

1.      <西天取经团队成员>::=<师父>|<徒弟成员>

2.      <师父>::= “唐僧”

3.      <徒弟成员>::=”孙悟空”|”猪八戒”|”沙和尚”|”白龙马”

不用我多解释,大家也知道上面文法的含义吧。西天取经团队成员师父徒弟师父“唐僧”徒弟成员”孙悟空”、”猪八戒”、沙和尚”或”白龙马”。

问大家一个问题,西天取经团队成员中,有一位他的名字中第一字是“孙”,问这位成员是谁?“,读者可能会说,这么弱智的问题还好意思拿出来问,当然是“孙悟空”。

再举一个例子:

<陈述句>::=<陈述句内容>。

再问一个问题,根据<陈述句>的文法定义,<陈述句内容>以什么结尾,你会说当然是以句号结尾。

如果上述两个问题你都答对了,那么恭喜你,你读后面的词法分析和语法分析部分,将不会遇到太大的困难,因为后面的词法语法部分,用到的就是这个原理。后面文绉绉的对First集,Follow集的定义,其实描述的就是这点事。

自己动手写编译器、链接器 Author

posted @ 2015-06-23 09:17  果然令狐冲  阅读(2051)  评论(0编辑  收藏  举报