编译原理考点最新爆料哦

编译原理考点最新爆料哦

ID:16150748

大小:103.83 KB

页数:8页

时间:2018-08-08

编译原理考点最新爆料哦_第1页
编译原理考点最新爆料哦_第2页
编译原理考点最新爆料哦_第3页
编译原理考点最新爆料哦_第4页
编译原理考点最新爆料哦_第5页
资源描述:

《编译原理考点最新爆料哦》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、1、编译程序涉及的三个语言答:源语言目标语言实现语言2、编译程序的概念及其结构(五个)答:编译程序(compiler)是一种翻译程序,它特指把某种高级程序设计语言翻译成具体计算机上的低级程序设计语言。源程序词法分析语法分析语义分析优化处理目标代码生成目标程序3、什么是二义性文法。答:若文法中存在这样的句型,它具有两棵不同的语法树,则称该文法是二义性文法。4、超前搜索技术答:词法分析程序在读取单词时,为了判断是否已读入整个单词的全部字符,常采取向前多读取字符并通过读取的字符来判别,即所谓超前搜索技术。5、“遍”的概念答:编译程序对源程序或等价程序从头至尾扫描的次数。6、

2、上下文无关文法的定义答:文法是规则的有限集,其中的上下文无关文法可定义为四元组:G(Z)=(VN,VT,Z,P)每个元素:1、VN:非终结符集(定义的对象集,如:语法成分等),它的每个元素是非终结符号。2、VT:终结符集(字母表),它的每个元素是终结符号。3、Z:开始符号(研究范畴中,最大的定义对象);4、P:规则集(又称产生式集);每个规则:1、A->α或者A->α

3、β2、其中:描述符号:->(定义为),

4、(或者是)3、文法符号:Z,A∈VN,α,β∈(VN+VT)*7、词法分析,自上而下以及自下而上语法分析的基本概念,输入,输出,分析方法。答:(1)词法分析是编译

5、过程中的一个阶段,在语法分析前进行,也可以和语法分析结合在一起作为一遍。i.输入:源程序字符串ii.输出:等价的属性字序列(内部表示形式)iii.词法分析器又称扫描器,是执行词法分析的程序。任务有二:(1)识别单词——从用户的源程序中把单词分离出来;(2)翻译单词——把单词转换成机内表示,便于后续处理。(1)自上而下语法分析是从文法的开始符号出发,反复使用不同产生式向下推导以谋求与输入符号串相匹配。对任何输入串,试图用一切可能的办法,从文法开始符号(根结)出发,自上而下地为输入串建立一棵语法树。i.输入符号串指的是由单词符号(文法的终结符)组成的有限序列(2)自下而上

6、分析法就是从输入串开始,逐步进行“归约”,直至归约到文法的开始符号;或者说从语法树的末端开始,步步向上“归约”,直到根结。i.输入串在这里是指从词法分析器送来的单词符号组成的二元式的有限序列(单词种别,单词符号的属性值)。8、LL(k)的含义,以及LL(1)文法的判定。P73答:判断某给定文法是否为LL(1)文法其条件为:(1)文法不含左递归。(2)对于文法中每个非终结符A的各个产生式的候选首符集两两不相交。即,若A®a1

7、a2

8、。。。

9、an则:FIRST(ai)ÇFIRST(aj)=f(i¹j)(3)对文法中每一个终结符A,若它存在某个候选首符集包含e,则FIRST

10、(A)ÇFLLOW(A)=f一个文法若满足以上条件,则称该文法G为LL(1)文法.9、LR分析法答:LR(0)分析法SLR(1)分析法LR分析法LR(1)分析法LALR(1)分析法10、中间代码生成的依据,形式,目的。P166答:(1)中间代码的生成方法:属性文法制导翻译语义制导翻译(2)中间代码的形式:逆波兰式图表示法三元式四元式:最常用的形式(3)中间代码:不是机器语言,便于生成机器语言,便于代码优化11、四元式p172答:一个四元式是一个带有四个域(field)的记录结构,这四个域分别称为op、arg1、arg2及result。域op包含一个代表运算符的内部码。

11、三地址语句x:=yopz可表示为:将y置于arg1域,z置于arg2域,x置于result域,:=为算符。带有一元运算符的语句如x:=-y或x:=y的表示中不使用arg2。而像param(过程调用)这样的运算符仅适用arg1。条件和无条件转移语句将目标标号置于result域中。通常,四元式中的arg1、arg2和result的内容都是一个指针,此指针指向有关名字的符号表入口。12、栈式存储分配p255p245答:动态存储分配(1)栈式存储分配运行时,每进入一个过程,就在栈顶为该过程分配一块数据区,一旦退出该过程,它所占的空间也退还给系统。(2)堆式存储分配栈式存储分配

12、使用栈式存储分配法意味着把存储组成一个栈,运行时,每当进入一个过程(一个新的活动开始)时,就把它的活动记录压入栈(累筑于栈顶),从而形成过程工作时的数据区,一个过程的活动记录的体积在编译时是可静态确定的。当该过程结束(过程退出)时,再把它的活动过程弹出栈。这样在栈顶的数据区也随即不复存在。允许过程(函数)递归调用的数据存储管理1)语言特点:允许过程(函数)的递归调用,但不允许定义嵌套的过程(函数),也不许使用可变数组。如C语言。2)栈式存储分配:每进入一个过程,就有相应的数据区建立在栈顶。当程序开始运行前,用于建造数据区的栈是空栈。当开始进入主程序执

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

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

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