![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理总结
Ray Chan
这个作者很懒,什么都没留下…
展开
-
第二章 高级语言及语法描述
1、语法三个基本概念: (1)字母表 (2)单词符号 (3)语法单位2、语法、语义、文法区别:语法:一组规则,用这组规则可以产生形式上正确的程序。语义:语义是指这样的一组规则,使用它可以定义一个程序的意义。文法:文法是描述语言的语法结构的形式规则(即语法规则)。3、高级语言的分类(1)按程序设计范型分为:强制式语言(过程式语言。c)应用式语言(函数式语言。lisp)基于规则的语言...原创 2018-03-19 23:10:04 · 414 阅读 · 0 评论 -
第三章 词法分析
词法分析的主要目的是将输入的字符串输出为一个个单独的单词符号。即从左至右逐个字符的对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为由单词符号串组成的程序。实现这种过程需要借助词法分析器,其输入时源程序,输出为单词符号,其实现过程如下:源程序→词法分析器→单词符号单词的种类基本字(保留字,关键字)由程序语言定义的具有固定意义的标识符。用户不能用来表示变量名,函数名等标识符例:C语...原创 2018-04-06 15:32:43 · 638 阅读 · 0 评论 -
第四章 语法分析——自上而下分析
上一章学习的是词法分析,用正规式描述了单词符号的结构,用有限自动机构造词法分析器。但正规式描述能力是有限的,上下文无关文法适用范围更广一些,是语法分析的基础。语法分析办法分为两类,一类是自上而下分析法,另一类是自下而上分析法。这一章学习的是自上而下分析法,主要内容是如何消除左递归(直接左递归和非直接左递归)、寻找产生式的FIRST和FOLLOW集,学会判断所给出的文法是不是LL(1)文法,以及构造...原创 2018-04-25 01:24:03 · 889 阅读 · 0 评论 -
第五章 语法分析——自下而上分析
本章的语法分析方法与上一章的方法是相反的。上一章节是自上而下的分析,而这一章是自下而上的分析,即从输入串开始,逐步进行归约,将长的输入串归约到文法的开始符号。自上而下分析的关键问题是需要精确定义“可归约串”。这说明归约需要按照一定规则的,要不然可能同一步归约可能有多种归约方法,这就是本章的主要学习内容。移进归约移进归约比较简单,是用一个寄存符号的先进后出栈,把输入符号一个一个地移进到栈里,当栈顶形...原创 2018-05-18 00:13:54 · 2888 阅读 · 0 评论 -
第六章—属性文法和语法制导翻译
一.内容总结属性文法:是在上下文无关文法的基础上为每个文法符号(终结符或非终结符)配备若干个相关的“值”(称为属性)。分为综合属性和继承属性综合属性:用于“自下而上”传递信息,在语法树中,一个结点的综合属性的值,由其子结点的属性值确定。继承属性:用于“自上而下”传递信息。在语法树中,一个结点的继承属性由此结点的父结点和/或兄弟结点的某些属性确定。语义规则: 属性计算的过程即是语义处理的...原创 2018-06-12 23:53:56 · 1042 阅读 · 0 评论 -
第七章—语义分析和中间代码的产生
内容总结:语义分析语义分析的任务1、审查每一个语法结构的静态语义,即验证语法正确的结构是否有意义。 如:赋值语句:x:=x+y,左边变量类型与右边变量类型是否一致。2.在语义正确的基础上生成一种中间代码或目标代码语义分析的范围1.确定类型:确定标识符所关联的数据类型。2.类型检查:按语言的类型规则,检查运算的合法性与运算分量类型的一致性,必要时作类型转换。3.识别含义:根据语言的语义定义(形式或...原创 2018-06-13 00:17:31 · 736 阅读 · 0 评论 -
编译原理课程总结
经过一学期的学习,对于编译原理也算是有了深入的了解。其实经过三年的对编程的学习,对编译原理也不算是太陌生,大体还是有个了解的,但是其操作原理是什么,用了什么技术对程序进行识别和处理,是没有接触过的。学习完编译原理,知道了从词法分析到语法分析到中间代码的处理和优化再到目标代码的生成,当然其中还有很多技术就不再赘述了,下面我主要想写一下学习过程中的感受和所吸取的教训。 说实话,这一学期我...原创 2018-06-13 00:19:42 · 485 阅读 · 0 评论