a,5=什么是编译程序?编译程序是计算机的基本组成部分之一;从功能上看,一个编译程序就是一个语言翻译程序。编译程序的基本任务就是将源语言程序翻译成等价的目标语言程序
a,6=
简述高级语言源程序的两种翻译方式的特点。
编译执行:把源程序翻译成机器语言,生成目标文件,然后执行。包含汇编和链接两个过程。
解释执行:把一行源程序翻译成机器语言,然后执行;再翻译下一行源程序成机器语言,然后执行。翻译一句,执行一次。不生成目标文件。
a,7=
优化的基本概念目的产生更高效的代码
遵循的原则等价原则:优化不应改变程序运行的结果,有效原则:使优化后所产生的目标代码运行时间较短,占用的存储空间较小,合算原则:应尽可能以较低的代价取得较好的优化效果
优化的级别:局部优化、循环优化、全局优化
优化的种类:删除多余运算(删除公用子表达式),合并已知量,复写传播,删除无用赋值,代码外提,强度消弱,变换循环控制条件,
b,5=
确定有限自动机(DFA)是一个五元式M(K,∑,f,S,Z)
其中(1)K:有穷集,它的每一个元素称为一个状态(2):有限字母表,它的每一个元素称为一个输入符号(3)状态转化函数KX∑→ K的单值映射。F(K,a) →K(4) S唯一的初态SϵK(5) Z终态集ZϵK
b,6=
中间代码特点:独立于机器,复杂性界于源语言和目标语言之间,引入中间语言的优点,,使编译程序的结构在逻辑上更为简单明确 ,便于进行与机器无关的代码优化工作 ,易于移植,
b,7=
词法分析任务是对构成的源程序的字符进行扫描和分解,识别出一个个的单词。
语法分析在词法分析基础上,根据语言的语法规则,把单词符号串组成各类语法单位——短语,子句,语句,过程,程序
语法分析器的功能:按照文法的产生式(语言的语法规则),识别输入符号串是否为一个句子(合式程序
语义分析,完成有语法分析程序识别出来的语法成分的语义分析。一般都是在语法分析器分析出语法成分的同时进行该语法成分的语义分析,这种方式称为语法制导翻译。
目标代码生成:是编译程序的最后一个阶段,他完成中间代码到目标机器机器指令或者目标机器上汇编代码的转换
c,5=
文法G为一个四元组: G = (VT,VN,P,S)
VT:终结符(Terminal)集
VN:非终结符(Variable)集,VT∩VN=Φ
S:开始符号(Start Symbol),S∈VN
定义:如果S*α,α∈(VT∪VN)*则称α是G产生的一个句型(Sentential Form)
定义:如果S * x,且x∈VT* ,则称x是G产生的一个句子(Sentence)
语言:所有句子的集合,L(G)={x|S*x & x∈VT*}
c,6=
上下文无关文法G
VT:终结符集合(非空)
VN:非终结符集合(非空),且VT VN=
S:文法的开始符号,SVN
P:产生式集合(有限),
c,7=
最左推导(Left-most Derivation)
每次推导都施加在句型的最左边的语法变量上——与最右归约对应
最右推导(Right-most Derivation)
每次推导都施加在句型的最右边的语法变量上——与最左归约(规范规约)对应的规范(Canonical)句型
d,5=
句子二义性带来的问题
1.二义性会给语法分析带来不确定性
2文法的二义性是不可判定的,即不存在算法,能够在有限步数内确切判定一个文法是否是二义文法
3.要证明二义性举一个实例即可
4若能控制文法的二义性,即加入人为附加条件,则二义性文法存在不一定是坏事(在学习语法分析时能够知道其优点)。
d,6=
自下而上(Bottom-up)
1.从输入串开始,逐步进行归约,直到文法的开始符号
2.归约:根据文法的产生式规则,把串中出现的产生式的右部替换成左部符号
3.从树叶节点开始,构造语法树
4.算符优先分析法、LR分析法
d,7=
自上而下(Top-down)
1.从文法的开始符号出发,反复使用各种产生式,寻找"匹配"的推导
2.推导:根据文法的产生式规则,把串中出现的产生式的左部符号替换成右部
3.从树的根开始,构造语法树
4.递归下降分析法、预测分析程序
d,8=
编译过程包括哪几个主要阶段及每个阶段的主要功能。
词法分析阶段:读入源程序,对构成源程序的字符流进行扫描和分解,识别出单词,
语法分析阶段:机器通过词法分析,将单词序列分解成不同的语法短语,确定整个输入串能够构成语法上正确的程序。
语义分析阶段:检查源程序上有没有语义错误,在代码生成阶段收集类型信息
中间代码生成阶段:在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式
代码优化:这一阶段的任务是对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即省时间和省空间
目标代码生成:这一阶段的任务是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码
【无标题】全鸡配汉堡
最新推荐文章于 2025-05-10 17:17:50 发布