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

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

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

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

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

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

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

再举一个例子:

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

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

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

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

时间: 2024-12-07 09:02:30

编译原理文法知识通俗趣味理解的相关文章

计算机编译原理---文法

乔姆斯基把方法分成四种类型,即0型.1型.2型和3型.这几种文法类型的概念一定要掌握,是一个非常重要的考点.对于这几种文法,一般书上都只有简单的 概念介绍,比较抽象,所以很多学员都没有真正理解.下面我将把概念结合例题进行讲解. 0型文法 设G=(VN,VT,P,S),如果它的每个产生式α→β是这样一种结构:α∈(VN∪VT)*且至少含有一个非终结符,而β∈(VN∪VT)*,则G是一个0型文法.0型文 法也称短语文法.一个非常重要的理论结果是:0型文法的能力相当于图灵机(Turing).或者说,任

0909对编译原理的理解

1.编译原理学什么? 编译原理旨在让人们学习编译程序构造的一般原理和基本方法.内容包括语言和文法.词法分析.语法分析.语法制导翻译.中间代码生成.存储管理.代码优化和目标代码生成,而且这门课程关注的是编译器方面的产生原理和技术问题.回归到本质上,学习编译原理其实也就是学习一个相对复杂的算法. 2.为什么学编译原理? 编译原理这门课程实际蕴含着计算机学科中解决问题的思路.形式化问题和解决问题的方法,这些思路和方法除了对应用软件和系统软件的设计与开发有一定的启发和指导作用外,在提倡学科的交叉不断创新

0909 对编译原理的理解

1.编译原理学什么? 学习编写编译器,将高级语言(自己的代码)翻译成为机器语言. 2.为什么学编译原理? 更好的理解高级语言转化为机器语言,更好的认识编译器原理. 3.怎么学编译原理? 先了解编译原理的相关知识,并找些相关书籍理解,在课外时间多练习.实践,来更好学习编译原理. 4.思考:在没有学习本书理论之前,如果让你写一个编译器,你是什么思路? 在写编译器之前,我们必须先有c语言上有一定的基础.然后在对编译原理上才能学的更好.

编译原理123

1.编译原理就是什么? 个人理解,编译就是像翻译一样,将一种语言翻译成另一种语言,编译就是将高级语言或汇编语言翻译成电脑能识别的二进制机器语言,编译原理就是讲解这 个编译的过程.内容包括语言和文法.词法分析.语法分析.语法制导翻译.中间代码生成.存储管理.代码优化和目标代码生成. 编译原理是计算机专业设置的一门重要的专业课程.虽然只有少数人从事编译方面的工作,但是这门课在理论.技术.方法上都对学生提供了系统而有效的训练,有 利于提高软件人员的素质和能力. 2.学习编译原理有什么好处? 学习编译原

编译原理随笔

最近初步接触到了编译原理这门课程,通过老师提供的一些链接,以及课上的知识,对这门课有了一些认识与了解. 编译原理旨在介绍编译程序构造的一般原理和基本方法.内容包括语言和文法.词法分析.语法分析.语法制导翻译.中间代码生成.存储管理.代码优化和目标代码生成.从源语言提取需要的信息:把源语言翻译成目标语言:自动生成满足一定规范的文本... 学习编译原理可以更加容易的理解在一个语言种哪些写法是等价的,哪些是有差异的可以更加客观的比较不同语言的差异,更不容易被某个特定语言的宣扬者忽悠,学习新的语言是效率

对编译原理的认识

认识:编译原理是把我们编写的高级语言通过一定的算法转换生成机器执行的二进制代码. 好处:学习编译原理可以让我们对语法和数据结构有一个更深层次的认识,可以让我们理解机器是如何理解高级语言的,我们可以学习其中的思想运用到我们构建编写代码过程中,减少错误代码的出现以及能快速写出整洁的代码,也可以方便我们进行代码优化.学好了还可以自己编写一个新的编译器以及编写出一个新的高级语言. 损失:不学习编译原理我们对C语言等一些底层语言了解无法深入,让我们学习的知识有缺陷和形成断层.编译器的编写需要运用编译原理的

关于编译原理

1.编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法.内容包括语言和文法.词法分析.语法分析.语法制导翻译.中间代码生成.存储管理.代码优化和目标代码生成. 编译原理是计算机专业设置的一门重要的专业课程.虽然只有少数人从事编译方面的工作,但是这门课在理论.技术.方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力. 2.编译原理是计算机科学与技术中一个非常成熟的分支,非常完美地将原理与技术结合了起来,对于理解计算机的本质非常有帮助 . 编译原理是计算

0909 编译原理的学习

在21世纪的信息快速发展时代,计算机的技术已经渗入到生活当中.因此,我们需要学习更多的计算机的专业知识.『编译原理』这门课程是一门设计和构造编译程序原理和方法的课程,是计算机各专业的一门重要专业基础课.这门课程旨在介绍编译程序构造的一般原理和基本方法.内容包括语言和文法.词法分析.语法分析.语法制导翻译.中间代码生成.存储管理.代码优化和目标代码生成. 编译原理是计算机专业设置的一门重要的专业课程.虽然只有少数人从事编译方面的工作,但是这门课在理论.技术.方法上都对学生提供了系统而有效的训练,有

编译原理初感悟

1.编译原理就是什么? 个人理解,编译就是像翻译一样,将一种语言翻译成另一种语言,编译就是将高级语言或汇编语言翻译成电脑能识别的二进制机器语言,编译原理就是讲解这个编译的过程.内容包括语言和文法.词法分析.语法分析.语法制导翻译.中间代码生成.存储管理.代码优化和目标代码生成. 编译原理是计算机专业设置的一门重要的专业课程.虽然只有少数人从事编译方面的工作,但是这门课在理论.技术.方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力. 2.学习编译原理有什么好处? 学习编译原理可