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

相关文章

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb