2017计科01-08编译原理练习题一语义分析中间代码生成

本文主要是介绍2017计科01-08编译原理练习题一语义分析中间代码生成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2017计科01-08编译原理练习题一语义分析&中间代码生成

单选题

2-1中间代码生成所依据的是( C )。

A.语法规则
B.词法规则
C.语义规则
D.等价变换规则
2-2四元式之间的联系是通过( B )实现的。

A.指示器
B.临时变量
C.符号表
D.程序变量
2-3终结符具有(C )属性。

A.抽象
B.传递
C.综合
D.继承
2-4以下说法正确的是( A)。

A.语义规则中的属性有两种:综合属性与继承属性
B.终结符只有继承属性,它由词法分析器提供
C.非终结符可以有综合属性,但不能有继承属性
D.属性值在分析过程中可以进行计算,但不能传递

2-5四元式表示法的优点为( A )。

A.不便于优化处理,但便于表的更动
B.不便于优化处理,但节省存储空间
C.便于优化处理,也便于表的更动
D.便于表的更动,也节省存储空间
2-6文法符号的属性有两种,一种称(A ),另一种称为( )。

A.继承属性 综合属性
B.抽象属性 综合属性
C.传递属性 抽象属性
D.抽象属性 派生属性
2-7用( C)可以把a:=b+c翻译成四元式序列。

A.语法规则
B.词法规则
C.语义规则
D.等价变换规则
2-8有文法G及其语法制导翻译如下所示( 语义规则中的*和+分别是常规意义下的算术运算符)

E→E1∧ T { E.val = E1.val * T.val }
E→T { E.val =T.val }
T→T1# n { T.val = T1.val + n.val }
T→ n {T.val = n.val }

则分析句子 2 ∧ 3 # 4其值为( C)。

A.10
B.34
C.14
D.54
2-9使用( A)可以定义一个程序的意义。

A.语义规则
B.词法规则
C.产生规则
D.词法规则
2-10下面(A)语法制导翻译中,不采用拉链—回填技术。

A.赋值语句
B.布尔表达式
C.条件语句
D.循环语句
2-11有文法G及其语法制导翻译如下所示( 语义规则中的*和+分别是常规意义下的算术运算符):

E→E1 ∧ T {E.val = E1.val * T.val}
E→T {E.val = T.val}
T→T1# n {T.val = T1.val + n.val }
T→ n {T.val = n.val}

则分析句子3 ∧ 3 # 4其值为(B)。

A.10
B.21
C.14
D.24

多选题

3-1已知表达式a+b∗c+(d+e)/f, 翻译成三地址代码序列,假设从100开始编号,选择合适的选项将下表补充完整。
在这里插入图片描述
A.T1:=b*c
B.T2:=a+T1
C.T3:=d+e
D.T4:=T3/f
E.T5:=T2+T4
F.T2:=d+e
G.T3:=T2/f
H.T4:=a+T1
I.T5:=T4+T3
答案: ABCDE

3-2将下列语句采用“拉链-回填”的思想翻译成四元式序列,选择合适的选项将下表补充完整。

while a<b and c<d do

if x>0 then x:=y+z else x:=y-z

在这里插入图片描述
A.(j<,a,b,102)
B.(j, _ ,, 112)
C.(j<,c,d,104)
D.(j,
,,112)
E.(j>,x,0,106)
F.(j,
,,109)
G.(+,y,z,T1)
H.(:=,T1,
,x)
I.(j,,,100)
J.(-,y,z,T2)
K.(:=,T2,,x)
L.(j,
,,100)
M…
N.(j,
,,102)
O.(j,
,,104)
P.(j,
,,111)
Q.(j,
,_,108)
R.(:=,T1,x,100)
S.(:=,T2,x,100)
T.(-,z,y,T2)
U.(+,z,y,T1)
V.(j<,a,b,106)
W.(j<,c,d,106)

答案: ABCDEFGHIJKLM

3-3已知表达式(a+b)/(a-b)-a-(a+b∗c),翻译成三地址代码序列,假设从100开始编号,选择合适的选项将下表补充完整。

在这里插入图片描述

A.T1:=a+b
B.T2:=a-b
C.T3:=T1/T2
D.T4:=T3-a
E.T5:=b * c
F.T6:=a+T5
G.T7:=T4-T6
H.T4:=b*c
I.T5:=a+T4
J.T6:=T3-a
K.T7:=T6-T5
L.T1:=a-b
M.T2:=a+b
N.T3:=T2/T1

答案: ABCDEFG

这篇关于2017计科01-08编译原理练习题一语义分析中间代码生成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/253376

相关文章

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Java中基于注解的代码生成工具MapStruct映射使用详解

《Java中基于注解的代码生成工具MapStruct映射使用详解》MapStruct作为一个基于注解的代码生成工具,为我们提供了一种更加优雅、高效的解决方案,本文主要为大家介绍了它的具体使用,感兴趣... 目录介绍优缺点优点缺点核心注解及详细使用语法说明@Mapper@Mapping@Mappings@Co

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R