编译原理终极版

编译原理终极版

ID:41131083

大小:74.00 KB

页数:4页

时间:2019-08-17

编译原理终极版_第1页
编译原理终极版_第2页
编译原理终极版_第3页
编译原理终极版_第4页
资源描述:

《编译原理终极版》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、编译程序:是指这样的一个程序,它能够把莫一种语言程序转换成另一种语言程序。而后者与前者在逻辑上是等价的。解释程序:它已该语言写的源程序作为输入。但不产生目标程序,而是边解释边执行原程序本身。诊断编译程序:专门用于帮助程序开发和调试的编译程序优化编译程序:着重于提高目标代码效率的编译程序目标机:运行编译程序的计算机叫宿主机,运行编译程序产生目标代码的计算机成为目标机交叉编译程序:一个编译程序产生不同于宿主机的机器代码可变目标编译程序:如果不需重写编译程序中与机器无关的部分就能改变目标机,则称该编译程序为可变目标编译程序文法:是描述语言的语法结构的形式规则上下文无关文法:他所定义的

2、语法范畴完全独立于这种范畴可能出现的环境的文法二义:如果一个文法纯在摸个句子对应两颗不同的语法树上下文无关文法的限制:(1)文法中不含任何下面形式的产生式P→P(2)每个非终结符P必须都有用处S=》αPβ语法分析器的基本任务:在词法分析识别出的单词符号串的记住上,分析并判断程序的语法结构是否符合语法规则。语法分析办法分为两类:自上而下分析法和仔细而上分析法1.编译过程概述:编译程序的工作过程一般也可以划分为五个阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成.    第一阶段,词法分析.词法分析的任务是:输入源程序,对构成源程序的字符串进行扫描和分解,识别出

3、一个个的单词符号(简称符号).词法分析阶段所依循的是语言的词法规则,而描述词法规则的有效工具是正规式和有限自动机第二阶段,语法分析.语法分析的任务是:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位(语法范畴),如“短语”、“子句”、“句子”(“语句”)、“程序段”和“程序”等.通过语法分析,确定整个输入串是否构成语法上正确的“程序”.语法分析所依循的是语言的语法规则.语法规则通常用上下文无关文法描述.第三阶段,语义分析与中间代码产生.这一阶段的任务是:对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译,产生中间代码.具体而言,这一阶段包括两个方

4、面的工作:首先,对每种语法范畴进行静态语义检查,例如,变量是否定义、类型是否正确等等;在语义正确的基础上进行中间代码的翻译.这一阶段所依循的是语言的语义规则,通常使用属性文法,四元式描述语义规则.第四阶段,优化.优化的任务在于,对前段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效(省时间和空间)的目标代码.优化的主要方面有:公共子表达式的提取、循环优化、删除无用代码等等.有时,为了便于“并行运算”,还可以对代码进行并行化处理.优化所依循的原则是程序的等价变换原则第五阶段,目标代码生成.目标代码生成阶段的任务是:把中间代码(或经过优化处理之后)变换成特定机器上的低级语

5、言代码.这阶段实现了最后的翻译,它的工作有赖于硬件系统结构和机器指令含义.这阶段工作非常复杂,涉及到硬件系统功能部件的运用,机器指令的选择,各种数据类型变量的存储空间分配,以及寄存器和后援寄存器的调度等.如何产生出足以充分发挥硬件效率的目标代码是一件非常不容易的事情.2.合理地设计和使用表格是编译程序构造的一个重要问题.在编译程序使用的表格中,最重要的是符号表.3.编译程序在处理到名字的定义性出现时,要把名字的各种属性填入到符号表中;当处理到名字的使用性出现时,要对名字的属性进行查证.4.源程序中的错误分为语法错误和语义错误两大类.语法错误是指源程序中不符合语法或词法规则的错误

6、,它们可在词法分析或语法分析时检测出来.语义错误通常包括:说明错误、作用域类型、类型不一致等等.语法错误和大部分语义错误一般可以在编译的前三阶段检测出来,有少量的语义错误要在运行才能检测出来.5.编译的前端与后端:编译程序可以被划分为编译前端和编译后端.前端主要由与源语言有关但与目标机无关的那些部分组成,通常包括:词法分析、语法分析、语义分析与中间代码产生,有的代码优化工作也可包括在前端.后端是由编译程序中与目标机有关的那些部分组成,如与目标机有关的代码优化和目标代码生成等.通常,后端不依赖于源语言而仅仅依赖于中间语言6.编译程序的类型:1.诊断编译程序:专用于帮助程序开发和调

7、试2.优化编译程序:提高目标代码的效率3.交叉编译程序:产生不同于其宿主机的机器代码4.可变目的编译程序:不需要写编译程序中与机器无关的部分就改变目标程序7.中间代码的作用:1.便于进行与机器无关的代码优化工作2.使编译程序改变目标机更容易3.使编译程序的结构在逻辑上更为简单明确.以中间语言为界面,编译前段和后端的接口更清晰8.规范规约分析中,用”句柄”来刻画”可规约串”算符优先分析中,用”最左素短语”来刻画”客规约串”9.X∈VT∪VN构造FIRST(X):①若X∈VT,则FIRST(X)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。