编译原答疑题.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原答疑题

编译原理答疑题 编译程序的结构是什么? 答:编译过程的六个阶段的任务,再加上表格管理和出错处理的工作可分别由几个模块或程序完成,它们分别称作词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、表格管理程序和出错处理程序。 PL/0编译程序的结构是什么? 答:由PL/0的EBNF可知,PL/0语言可看成是PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。PL/0的编译程序和目标程序的解释执行程序都是用PASCAL语言书写的,因此PL/0语言可在配备PASCAL语言的任何机器上实现。其编译过程采用一趟扫描方式,以语法分 析程序为核心,词法分析程序和代码生成程序都作为一个独立的过程,当语法分析需要读单词时就调用词法分析程序,而当语法分析正确需生成相应的目标代码时,则调用代码生成程序。此外,用表格管理程序建立变量、常量和过程标识符的说明与引用之间的信息联系。用出错处理程序对词法和语法分析遇到的错误给出在源程序中出错的位置和错误性质。当源程序编译正确时,PL/0编译程序自动调用解释执行程序,对目标代码进行解释执行,并按用户程序要求输入数据和输出运行结果。 3.关系有哪些基本性质? 答:自反的 ?? ??在集合X上的关系R,如对任意x∈X,均有(x,x) ∈R,则称关系R是自反的。 非自反的 ??在集合X上的关系R,如对任意x∈X,均有(x,x)R,则称关系R是非自反。 对称的 ?? ??在集合X上的关系R,如果合(x,y) ∈R,便必有(y,x) ∈R,则称关系R是对 称的。 非对称的 ??在集合X上的关系R,如果有(x,y) ∈R丛x≠y,便必有(y,x)R,则称关系R是非对称的。 传递的 ??在集合X上的关系R,如果合(x,y) ∈R且(y,z) ∈R,必有(x,z) ∈R,则称关系R是传递的。 4.设有文法G[I]: ?? I-I1/I0/Ia/Ic/a/b/c ?? 判断下面符号串中哪些是该文法的句子. ?? (1) ab0 ? ? (2)a0c01 ?? (3)aaa ? ? (4)bc10 ?? (5)aabc ?? (6)bbca 答:(1)错误 ?? (2)正确 ?? (3)正确 ?? (4)正确 ?? (5)错误 ?? (6)错误 ?? (7)错误 5. 给定文法G =(VN,VT,P,S),对于G的任何句型都能构造与之关联的语法树(推导树)。这棵树应满足那些条件? 答:给定文法G =(VN,VT,P,S),对于G的任何句型都能构造与之关联的语法树(推导树)。这棵树满足下列4个条件: 1. 树中每个结点都有一个标记,此标记为VN∪VT中的一个符号 2. 根的标记为文法的开始符 3. 若一结点n至少有一个它自己除外的子孙,并且有标记为A,则A一定是非终结符 4. 如果结点n的直接子孙,从左到右的次序是 ,且分支结点的标记分别为B1、B2,…,Bn,则A→B1B2…Bn一定是P中的一个产生式。 6. 自下而上分析算法的基本思想是什么? 答:从所给符号串x开始,在其中寻找与文法的某条规则右部相匹配的子串,并用该规则的左部取代此子串(即归约),重复此过程,步步向上归约,最后试图将符号串x归约到文法的识别符号Z。如归约成功,则符号串x是文法的句子。 7设有文法G: ??s::=Qc|c ??Q::=Rb|b ??R::=Sa|a 试求HARD(S),HARD(Q),HARD(R). 答:?? ?? HARD(S)={S,Q,R,a,b,c} ?? ?? ?? ?? HARD(Q)={S,Q,R,a,b,c} ?? ?? ?? ?? HARD(R)={S,Q,R,a,b,c} 8. 用扩充的BNF范式表示下述文法以消去ε规则: ?? S::=aABb|ab ?? A::=Aab|ε ?? B::=Aa|a 解:S::=aABb|ab ?? ?? A::={ab} ?? ?? B::=Aa|a 9.将词法分析做为一个独立的阶段,把编译过程的分析工作划分成词法分析和语法分析两个阶段主要的考虑因素是什么? 答:1. 使整个编译程序的结构更简洁、清晰和条理化。词法分析比语法分析简单的多,但是由于源程序结构上的一些细节,常使得识别单词的工作甚为曲折和费时。例如,空白和注释的处理;再比如对于FORTRAN那种受书写格式限制的语言,需在识别单词时进行特殊处理等等。如果统统合在语法分析时一并考虑,显然会使得分析程序的结构复杂得多。 ?? 2. 编译程序的效率会改进。大部分编译时间是花费在扫描字符以把单词符号分离出来。把

文档评论(0)

ybcm963 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档