电子科技大学《程序设计语言与编译》自测题答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4. 句型是由( ④ )推导出的符号串。
① 非终结符
② 终结符
③ 任何符号
④ 开始符号
5. 项目 A→·a称为( ① ),其中 a∈VT。
① 移进项
② 归约项
③ 待约项
④ 接受项
6. LR 分析法的核心部分是( ② )。
① 总控程序
② 分析表
③ 分析栈
④ 可归约串
7. 把一个高级语言程序翻译成机器可执行的目标程序的工作由( ③ )完成。
2.
程序语言的生成机制是____文法_____,它的识别机制是___语法图_______。
3.
类型聚合的方式有____笛卡儿集__、_有限映象__、_序列_、_递归___、_判定或____、__幂集_________。
4.
传统语言三种语句级控制结构是_____顺序________、__选择____________、__重复____________。
A. 句柄, B.短语, C.最左素短语,D.句型
4.LR 分析法的核心部分是( B )。
A. 总控程序,B.分析表,C.分析栈,D.可规约串
5.现今多数语言的描述工具是上下文无关文法,它对应于( D )。
A. 图灵机,B.线性有界自动机,C.有限自动机,D.非确定的下推自动机
6.将一台实际的机器装上 Pascal 编译程序,它就成为 Pascal( D )。
① 汇编器
② 解释器
③ 编译器
④ 预处理器
8. 编译时能进行的类型检查称为( ③ )。
① 错误检查
② 动态检查
③ 静态检查
④ 随机检查
9. 若过程 P 调用过程 Q,其参数传递方式是传名,同以( ④ )来实现。
① 传地址
② 传值
③ 调用过程 P
④ 参数子程序
10. 在一棵语法树中,仅有两层的子树叶结点的自左至右排列称为( ② )
所以是句型
2. 画出(bdS)的推导树;(5 分)
S

A

SdA
bS
3. 求句型(bdS)的短语,直接短语,素短语,句柄。(5 分)
短语 b、S、bdS、(bdS)
直接短语 b、S
素短语 b
句柄 b
五、 算符优先分析法(共 15 分) 设有文法 G:
P→P(F)| P
F→abFda | a
(1)求每个非终结符的 FIRSTVT 集和 LASTVT 集(8 分)
① 短语
② 直接短语
③ 句柄
④ 素短语
二、多项选择题(每小题 2 分,共 10 分)
1. 按 Chomsky 的观点,将文法分成( ①③④⑤ )等几类。
① 短语文法 ② 算符优先文法
③ 上下文有关文法 ④ 上下文无关文法
2. 编译的各个阶段都要涉及表格管理,表格管理的工作有( ①④⑤ )。
① 符号表的建立
a) 变量的作用域,B.变量的生存期,C.变量的值,D.变量的类型
10.( B. )不属于单元级控制结构。
A. 过程调用,B.循环,C.异常处理,D.并发单元
二、 填空题(每空 1 分,共 25 分)
1.
变量用名字来标识,此外还有 4 个属性:___作用域__、_生存期__、_值____、_类型___。
5.
按 Chomsky 观点,文法可分为____0 型文法___、__1 型文法____、__2 型文法____、_3 型文法____。
6.
静态存储分配时,不允许____递归调用___________,不允许__动态数组________________。
8.引用调用的参数传递方式,被调用程序单元对形参的引用,理解为对形参单元中实参地址的_间接访问_________;在传值方式
(104)(j<=,I,N,112)
(108)(j, , ,132)
(112)(+,I,10 ,t1)
(116)([]=,t1, ,a0[I])
(120)(+,I,I,t2)
(124)(:=,t2, ,I)
(128)(j, , ,104)
(132)
程序设计语言与编译三
一、单项选择题(每小题 1 分,共 10 分) 1. 词法分析器的输出是( ② )。
B→.a
B→.b
2. 构造 SLR 分析表;(8 分)
action
goto
a
b
c
d
$
S
A
B
0
S2
1
1
acc
2
S5
S6
3
4
3
S7
R1
4
R3
R3
5
R4
R4
6
R5
R5
7
S5
S6
8
8
R2
R2
3. 该文法是 SLR(1)文法吗?理由是什么?(4 分)
是,不存在多重入口
七、 语义分析题(10 分)
将下面语句翻译成四元式序列:
拓广文法:(0) S'→S
(1) S→cA
(2) A→AdB
(3) A→B
(4) B→a
(5)B→b
I0:S'→·S
I3:S→cA· A→A.dB
I7:A→Ab·B
S→·cA
I4:A→B·
B→·a
I1:S'→S·
I5:B→a·
B→·b
I2:S→c·A
I8:A→AdB·
A→·a
I6:B→b·
A→·AdB
程序设计语言与编译一
一、 单项选择题(每题 1 分,共 10 分)
1.一个程序单元可有( D )实例。
A. 0 个,B.1 个, C.2 个,D.多个
2.编译程序是将( C )程序改造成目标语言程序的翻译程序。
A. 机器语言,B.汇编语言,C.高级语言,D.低级语言
3.规范规约每次都是对( A )进行规约。
S5


S5/r3


r1

r4
r4

r2
6. 该文法是 SLR(1)文法吗?理由是什么?(5分)不是,SLR 分析表中存在多重入口
i.
分析题(10 分)
将下面语句翻译成中间代码:
I:=1;
While I<=N do
begin
A[I]:=I+10;
I:=I+1;
end;
(100)(:=,1, ,I)
10.一个对象与其某种属性建立某种联系的过程,称为( D )。
A. 赋值,B.存储,C.定义,D.绑定
二、 多项选择题(每小题 2 分,共 10 分)
1.类型转Fra Baidu bibliotek的方法( B E )
A. 动态转换,B.拓展,C.静态转换,D.收缩,E.显式转换
2.语句级控制结构有( BCE )
A.递归,B.顺序,C.选择,D.过程调用,E.重复
② 生成四元式
③ 报告错误
④ 符号表的查找
⑤ 符号表的更新
3. 基本块的入口语句可能是( ①②③ )。
① 程序的第一条语句
② 能由转移语句转移到的语句
③ 紧跟在条件转移语句后面的语句 ④ 说明语句 ⑤ 循环语句
4. 词法分析时,通常将单词分成(①②③④⑤
LASTVT(P)={a,) }
LASTVT(F)={a} 3. 构造此文法的优先关系表;(4 分)
a
bd
(
)
a
=>
>

b<

d=
(<



六、LR 分析法(共 15 分)
已知文法 G(S):
S→AB
A→aB∣a
B→b
4. 构造 G(S)的 LR(0)项目集规范族;(5分)
(0) S'→ S
(1) S→AB
(109)
(104)(:=,’0’,-,y)
(105)(j,-,-,100)
程序设计语言与编译二
一、选择题(每题 1 分,共 10 分)
1.编译时能进行的检查类型检查为( C )
A. 错误检查,B.动态检查,C.静态检查,D.随机检查
2.一个程序单元可有( D )实例
A. 0 个,B.1 个, C.2 个,D.多个
4、 什么叫语法制导翻译?
每个产生式配一个子程序,在语法分析的过程中,每当用一个产生式进行匹配或归约时,就调用相应的语义子程序
四、 推导题(共 15 分)
1、已知文法 G(S):
S→a∣b∣(A)
A→SdA∣S
1. 证明(bdS)是 G(S)的句型;(5 分)
S=>(A)=> (SdA)=>(bdA)=>(bdS)
3.Chomsky 将文法分成( ACDE )
A. 短语文法,B.LL(1)文法,C.上下文无关文法,D.上下文有关文法,E.正规文法
4.数据聚合的方式有( ABDE )
A. 笛卡儿积,B.有限映像,C.指针,D.递归,E.判定或
5.强制性语言中,变量具有属性( ABDE )
A. 作用域,B.生存期,C.强制性,D.值,E.类型
A. 抽象机,B.识别机,C.翻译机,D.虚拟机
7.词法分析器的输入是( A )。
A. 字符串,B.二元式,C.三元式,D.四元式
8.在一棵语法树中,子树叶结点的自左至右排列称为( A )。
A. 短语,B.句型,C.句柄,D.素短语
9.运行时进行的检查称为( B )。
A. 错误检查,B.动态检查,C.静态检查,D.随机检查
FIRSTVT(P)={a,c} FIRSTVT(F)={a}
LASTVT(P)={a,)} LASTVT(F)={a}
(2)试构造文法 G 的优先关系表(7 分)
优先关系表:
六、 LR 分析法(共 20 分)
已知文法 G(S):
S→cA
A→AdB∣B
B→a∣b
1. 构造 G(S)的 LR(0)项目集规范族;(8 分)
① 字符串
② 二元式
③ 三元式
④ 四元式
2. 下述方法中,( ③ )不是自下而上的分析方法。
① 规范归约
② 算符优先分析法
③ 递归下降分析法 ④ LR 分析法
3. Σ={A, B, 0, 1}上的正规式(A | B)(A | B | 0 | 1)*表示( ④ )。
① 字符串
② 整数
③ 数字串
④ 标识符
WHILE a<b DO
IF a>0 THEN y:=0
ELSE y:=y+1;
(100)(j<,a,b,102)
(106)(+,y,’1’,t1)
(101) (j>,-,-,109)
(107)(:=,t1,-,y)
(102) (j>,a,’0’,104)
(108) (j,-,-,100)
(103)(j>,-,-,106)
已知文法 G(S):
S→a∣b∣(A)
A→B
B→SdB∣S
1.
给出((b)da)的最左推导过程及相应的推导树;(5 分)
S=>(A)=>(B)=>(SdB)=>((A)dB)=>((B)dB)=> ((S)dB) => ((b)dB)=> ((b)dS) => ((B)da)
2.
求((b)da)的短语、直接短语和句柄。(5 分)
3.把一个高级语言程序翻译成机器可执行的目标程序的工作由下列程序之一完成( C )
A. 汇编程序,B.解释程序,C.编译程序,D.预处理程序
4. LR 分析法的核心部分是( B )。
B. 总控程序,B.分析表,C.分析栈,D.可规约串
5.词法分析时,单词的识别依据( C )实现
A. 下推自动机,B.图灵机,C.状态转换图,D.抽象机
6.句型是由( D. )推导出的符号串。
A. 非终结符,B.终结符,C.任何符号,D.开始符号
7.一棵语法树中,子树叶结点的自左至右排列称为( A )。
B. 短语,B.句型,C.句柄,D.素短语
8.一个对象与其某种属性建立某种联系的过程,称为( D. )。
B.赋值,B.存储,C.定义,D.绑定
9.( A )是指可访问该变量的程序范围。
短语:b,(b),(b)da,((b)da),a
直接短语:b ,a
句柄:b
五、 算符优先分析法(共 10 分)
已知文法 G(P):
P→P(F)| F
F→abFda∣a
1. 求每个非终结符的 FIRSTVT 集;(3 分)
FIRSTVT(P)={a,b}
FIRSTVT(F)={a}
2. 求每个非终结符的 LASTVT 集;(3 分)
中,形参只起_______局部变量_____________作用。
9. 机器语言和汇编语言都是与机器无关的语言,统称__低级语言__,与机器无关的程序设计语言称为__高级语言_。
三、 简答题(每小题 5 分,共 20 分)
1. 用户定义类型满足哪两个特性时,才能称为抽象数据类型?
在允许实现这个新类型的程序单元中,建立与表示有关的具体操作
(2) A→aB
(3) A→a
(4) B→b
I0:S'→ .S
S→.AB
A→.aB
A→.a
I1:S'→ S.
I2:S'→A.B
B→.b
I3:A→a.B
A→.a
B→.b
I4:S→AB.
I5:B→b.
I6:A→aB.
5. 构造 SLR 分析表;(5分)
action
goto







S3



acc

对使用这个新类型的程序单元来说,新类型的表示是隐蔽的
2. 一个典型的编译程序有哪几部分?
词法分析器、语法分析器、语义分析器、中间代码生成器、优化器、代码生成器
3. 循环优化有哪些措施?
代码外提 强度削弱 删除归纳变量
4. 参数传递有哪几种方式?
5 种:传值 传地址 得结果 传值得结果
四、 推导题(共 10 分)
三、 简答题(每小题 5 分,共 20 分)
1、 分程序与复合语句的区别是什么?
分程序中可说明局部于该程序的变量,复合语句是可执行语句的序列,其中没有说明语句
2、 循环优化有哪几种方法?
代码外提,强度削弱,删除归纳变量
3、 怎样判断一个文法具有二义性?
文法 G 如果产生的某个句子对应两棵不同的语法数,则有二义性
相关文档
最新文档