(完整word版)编译原理试题及答案.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程测试试题( 04A 卷) I、命题院(部): 数学与计算机科学学院 II 、课程名称: 编译原理 、测试学期: 2006- 2007 学年度第 1 学期 IV 、测试对象: 数计、国交 学院 计科 专业 2004 级 1、2、国交 V、问卷页数( A4 ): 3 页 VI 、答卷页数( A4): 4 页 VII 、考试方式: 闭卷 (开卷、闭卷或课程小论文,请填写清楚)  班 VIII 、问卷内容:(请老师在出题时安排紧凑,填空题象征性的留出一点空格,学生将所有的答案做在答题纸上的规定位置,并写清楚大题、小题的题号) 一、填空题(共 30 分, 30 个空,每空 1 分) 1、典型高级程序设计语言编译系统的工作过程一般分为六个阶段,即词法分析、语法 分析、语义分析、 中间代码生成、 、目标代码生成。 编译阶段的两种组合方式是 组 合法和按遍组合法,这两种组合方式的主要参考因素都是 的特征。 2、Chomsky 将文法按其所表示语言的表达能力, 由高往低分为四类: 0 型,1 型,2 型, 3 型文法。其中, 2 型文法也称 ,它的所有规则 α→β都满足: α∈ ,β∈ ((V N ∪ V T) * 且 ,仅当 β= ε时例外。 3、现代编译系统多采用 方法,即在语法分析过程中根据各个规则所相联的 或 所对应的语义子程序进行翻译的办法。 该方法使用 为工具来说明程序设计语言的语义。 4、构造与 NFA M 等价的正规文法 G 的方法如下:( 1)对转换函数 f(A , a)=B 或 f(A , ε)=B ,改成形如 或 的产生式;(2)对可识别终态 Z ,增加一个产生式: 。 5、代码生成要考虑的主要问题:充分利用 的问题、选择 的问题、选择 的 问题。 6、设有穷自动机 M=(K , , f , S, Z) ,若当 M 为 时,满足 z0∈ f(S ,α)且 z0∈Z , 或当M为 时,满足 f(S , α)=P∈ Z ,则称符号串 α∈ *可被 M 所 。 7、符号表中每一项对应一个多元组。 符号表项的组织可分为 组织、 组织、 组 织等。 8、对于 A ∈ V N 定义 A 的后续符号集: FOLLOW(A)={a|S= * uAβ, a∈V T,且 a∈ , u∈V T *,β∈V +;若 ,则#∈ FOLLOW(A) 。也可以定义为: FOLLOW(A)={a|S= * Aa , a∈V T } 。若有 ,则规定 #∈ FOLLOW(A) 。 9、基本块的定义:一个基本块是指程序中一个 执行的语句序列,其中只有一个入 口和一个出口。 入口是程序第一个语句或转移语句的目标语句, 或转移语句的后继第一个语 句。出口是程序 或转移语句。在基本块范围内的优化称为 。 10、预测分析器由预测分析表、 先进后出栈 (用来存放分析过程的语法符号) 和 三 部分组成。其中预测分析表是一个二维矩阵,其形式为 M[A ,a],其中 A ∈V N,a∈ V T 或 #。 若有产生式 A→α,使得 a∈ ,则将 A→α 填入 M[A , a]中。 (书写时,通常省略规则 左部,只填 →α)。对所有 的 M[A , a]标记为出错。 二、简述题(共 20 分, 4 个小题,每小题 5 分) 1、简述将 NFA转换为最小化 DFA的步骤。 2、简述静态存储分配、栈式存储分配和堆式存储分配的特点和主要用途。 3、以表达式 a:=b*(-c)+b/(-d) 为例,简述常用的三种中间代码表示形式。 4、简述判别文法G是否为 LL(1) 文法的步骤和将一个非 LL(1) 文法转换为 LL(1) 文法的 方法。 三、应用题(共 50 分) 1、有文法 G[S] : (12 分 ) S→ aAS|a A→ SbA|SS|ba (1) 证明 aabbaa是文法的一个句子。 (3 分 ) (2) 构造句子 aabbaa的语法树。 (3 分 ) (3) 指出该句子的所有短语、直接短语和句柄。 (6 分) 2、对文法 G[E] : (15 分) E → #E# E→ E+T|TT→ T*F|F F→ P^F|PP→(E)|i 计算 G[E] 的 FIRSTVT和 LASTVT。 (5 分) 构造 G[E] 的算符优先关系表 , 并说明 G[E] 是否为算符优先文法。 (5 分 ) 给出输入串 w=i+i# 的算符优先分析过程。 (5 分) 3、对以下基本块: ( 8 分) A: =5 B: =R+r T0: =A+B T1: =2*A T2: =B+A T3: =A+A X1: =T1+T2 X2: =T0*T3 ( 1)画出基本块的 DAG图。 (3 分) ( 2)根据 DAG 结点

文档评论(0)

183****0046 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档