编译原理练习题

一. 选择题(2分*10=20分)
注意:请将选择题答案填写到以下选择题答题卡中
题号 1 2 3 4 5 6 7 8 9 10
答案 D B D C D B C A C C

  1. 编译程序绝大多数时间花在____D_____上 。
    A. 词法分析 B. 语法分析
    C. 语义分析 D. 表格管理

  2. 汇编程序是将_____ B__ 翻译成__;编译程序是将________翻译成________。
    ①高级语言 ②汇编语言 ③机器语言 ④高级语言或汇编语言
    ⑤汇编语言或机器语言
    A.①③①⑤ B. ②③①⑤ C. ④③①③ D. ②③①③

  3. 给定文法G[A]:
    A→bA|cc
    下面____D_____是该文法的句子。
    A.bcbc B.bcbcc
    C.bccbcc D.bbbcc

  4. 已知语言{anbnci | n>=1,i>=0 },则下述文法中,___C___可以产生该语言。
    A. S→AB, A→aAb|ab, B→cB|c B. S→aAb, A→aBb, B→cB|c
    C.S→AB, A→aAb|ab, B→cB|ε D. S→aSb|A, A→bAc|c

  5. 在通常的语法分析方法中,___D____特别适用于表达式的分析。
    A.LR(1)分析法 B. LL(1)分析法
    C. 递归下降分析法 D. 算符优先分析法

  6. 在DFA的最小化过程中,初始应该把集合根据_____ B ____划分子集。
    A. 初态和非初态 B. 终态和非终态
    C. 是否含有ε出边 D. 是否有出边

  7. 基本块内的优化为___C____
    A.代码外提,删除归纳变量 B.强度削弱,代码外提
    C. 删除多余运算,删除无用赋值 D. 循环展开,循环合并

  8. 若文法G定义的语言是无限集,则文法必然是____A_____。
    A. 递归的 B. 二义性的
    C. 前后文无关的 D. 无二义性的

  9. 下列_____C____优化方法不是针对循环优化进行的。
    A. 强度削弱 B. 删除归纳变量
    C. 删除公共子表达式 D. 代码外提

  10. 错误的局部化是指_____C_____。
    A. 把错误理解成局部的错误
    B. 对错误在局部范围内进行纠正
    C. 当发现错误时,跳过错误所在的语法单位继续分析下去
    D. 当发现错误时立即停止编译,待用户改正错误后再继续编译
    二.(7分)编译程序的总体结构、阶段划分、扫描遍的设计对人们进行一个软件系统的设计有什么启发?
    答:复杂软件系统可以通过分解为不同的阶段,每个阶段完成一个相对比较简单的功能;能将计算学科一系列方法应用到目标实现当中,自动计算、自动实现也会成为可能。

三.(7分)请简单描述LR分析的优缺点。
优点:比递归下降、LL(1)、算符优先分析法的限制少,大多数用无二义的上下文无关文法描述的语言都可以用LR分析器予以识别,速度快,能准确及时地指出输入串的任何语法错误及出错位置
缺点:若用手工构造分析器工作量大
四.(10分)编译器的工作过程和遍。
1. 一个编译过程可分为一遍、两遍或多遍完成。请简要的描述多遍完成的编译程序的优点,缺点。
2. 描述一般的编译程序可分为哪些阶段,每个阶段的目的是什么?不同阶段是如何连接在一起的?每个阶段的输入和输出分别是什么?
1.优点:更好的代码生成、更优的代码、更高效的代码、支持更多的源语言可能性(某些语言需要多遍生成,如包含function声明的语言,而function的定义在声明之后)等
缺点:更长的编译时间、更多的内存需求等
2.

词法分析:输入-语言的源程序,输出-单词序列
语法分析:输入-单词序列,输出-抽象语法树
语义分析:输入-抽象语法树,输出-抽象语法树
中间代码生成:输入-抽象语法树,输出-中间代码
优化:输入-中间代码,输出-优化后的中间代码
目标代码生成:输入-中间代码,输出-目标代码(可能是汇编语言)
五.(10分)正规语言和自动机理论
考虑语言L={w | w∈(0,1)+, 并且w中包含两个连续的0,即"00",而且w以"1"结尾}。
1. 请写出该语言L的正规式。
2. 请根据你写出的正规式,画出与之相对应的NFA。
1.(0|1)* 00 (0|1)* 1
2.

六.(10分)形式语言分类
请判断下列产生式集所对应的文法属于0-3型文法的那一类,请说明理由。
1. S→aSBC 2. S→ACaB 3. S→Ac 4. S→aS
S→aBC Ca→aaC S→Sc S→aA
CB→DB CB→DB A→ab A→bA
DB→DC CB→E A→aAb A→bB
DC→BC aD→Da B→cB
aB→ab AD→AC B→c
bB→bb aE→Ea
bC→bc AE→ε
cC→cc
1.1型文法
2.0型文法
3.2型文法
4.3型文法

七.(12分)设文法G[S] 的产生式集如下:
S→aAa | bAb | e | c | t
A→SS
(1)试给出句子a c b e t b a的最右推导过程以及语法树;
(2)指出此句型的所有短语、直接短语、句柄和素短语和最左素短语。

(1)
S/  |  a    A   a/    S     S|     / | c    b A b/ S  S|   |e   t

S=>aAa=>aSSa=>aSbAba=>aSbSSba=>aSbStba=>aSbetba=>acbetba

(2)
短语: e c t et betb cbetb acbetba
直接短语: e c t
句柄: c
素短语: c e t
最左素短语: c

八. (14分)设语言L是由奇数个m和偶数(可以是0)个t组成的符号串之集。
(1) 构造识别L的最简DFA;(2) 给出定义L的正规文法。

1. 见图:
在这里插入图片描述

2.

S→mB|tC
D→mC|tB
B→mS|tD|ε
C→mD|tS
九.(10分)对于基本块P:
T0=3.14
T1=2T0
T2=R+r
A=T1
T2
B=A
T3=2T0
T4=R
r
T5=T3T4
T6=R-r
B=T5
T6
(1)用DAG图对基本块P进行优化;
(2)假定出基本块后只有A、B是活跃的,写出优化后的四元式序列。

(1)
在这里插入图片描述

(2) T2=R+r
A=6.28T2
T4=R
r
T5=6.28T4
T6=R-r
B=T5
T

  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫咪钓鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值