编译技术习题1

更新时间:2023-09-13 19:34:01 阅读量: 教学研究 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《编译技术》习题1

一、单项选择题

1. 程序基本块是指( )。

A、一个子程序 B、一个仅有一个入口和一个出口的语句 C、一个没有嵌套的程序段

D、一组顺序执行的程序段,仅有一个入口和一个出口 2.文法G产生的( )的全体是该文法描述的语言。

A、句型 B、终结符集 C、非终结符集 D、句子

3.在使用高级语言编程时,首先可通过编译程序发现源程序的全部( )错误。

A、语法 B、语义 C、语用 D、运行

4.由于受到具体机器主存容量的限制,编译程序几个不同阶段的工作往往被组合成( )。

A、过程 B、程序 C、批量 D、遍

5.文法G产生式为S→aSb|a|ab,句子aaaabbb句柄是( )。

A、最左边的a B、最右边的a C、ab D、aSb

第 1 页 共 6 页

6.中间代码生成时所依据的是( )。

A、语法规则

B、词法规则 C、语义规则 D、等价变换规则

7.词法分析器用于识别( )。

A、字符串 B、语句 C、单词 D、标识符

8.解释程序处理语言时,大多数采用的是( )方法。

A、源程序命令被逐个直接解释执行 B、先将源程序转化为中间代码,再解释执行 C、先将源程序解释转化为目标程序,再执行 D、以上方法都可以

9.文法分为四种类型,即0型、1型、2型、3型。其中3型文法是(A、短语文法 B、正则文法 C、上下文有关文法 D、上下文无关文法 10.程序基本块是指( )。

A、一个子程序 B、一个仅有一个入口和一个出口的语句 C、一个没有嵌套的程序段

D、一组顺序执行的程序段,仅有一个入口和一个出口

二、多项选择题

1.ab*c*(a|b)c 与下面的那些串匹配?( )

A、acbbc

第 2 页 共 6 页

。 )

B、abbcac C、abc D、acc

2.(a|b)a+(ba)* 与下面的哪些串匹配?( )

A、ba B、bba C、ababa D、aa

E、建立符号表

3.编译过程中,比较常见的中间语言有( )。

A、波兰表示 B、逆波兰表示

C、三元式 D、四元式

4.根据优化所涉及的范围,可将优化分为( )。

A、局部优化 B、过程优化 C、全局优化 D、循环优化 E、四元式优化

5.编译程序的输出结果可以是( )。

A、目标代码 B、汇编语言代码 C、中间代码 D、优化后的中间代码 E、可重定位代码

三、判断题(正确填“T”,错误填“F”)

1.在S属性定义的分析树中,可以由根向叶的方向依次计算各节点的属性值。

第 3 页 共 6 页

( )

2.在多次遍历的计算过程中,综合属性的函数以某种继承为参数。( ) 3.自上而下分析的宗旨是对任何输入串,从文法开始符号出发,自下而上、从左到右地为输入串建立分析树。( )

4.为语言设计类型系统的根本目的是防止程序运行时出现执行错误。( ) 5.算符优先关系表不一定存在对应的优先函数。( ) 6.数组元素的地址计算与数组的存储方式有关。( )

7.仅考虑一个基本块,不能确定一个赋值是否真是无用的。( ) 8.每个文法都能改写为LL(1)文法。( )

四、填空题

1.假设G一个文法,S是文法的开始符号,如果S=>*x,则称x是___。 2.从功能上说,程序语言的语句大体可分为___语句和___语句两大类。 3.语法制导的编译程序能同时进行___分析和___分析。

4.将过程的每次执行和过程的___相对应就解决了过程递归调用引起的问题。 5.一个上下文无关文法所含四个组成部分是___、___、___和___。 6.语法分析最常用的两类方法是______和______分析法。 7.一个句型中的最左简单短语称为该句型的______。 8.一个名字的属性包括______和______。

五、综合题

1. 影响存储分配策略的语言特征有哪些?

2.简述静态存储分配、栈式存储分配和堆式存储分配的特点和主要用途。

第 4 页 共 6 页

《编译技术》习题1答案

一、单项选择题 题号 1 答案 D

二、多项选择题 题号 1 答案 BC

三、判断题(正确填“T”,错误填“F”) 题号 1 答案 F

四、填空题 1、句型 2、执行性 说明性 3、语法 语义 4、活动记录

5、一组终结符号 一组非终结符号 一个开始符号 一组产生式 6、自上而下 自下而上 7、句柄

2 T 3 F 4 T 5 T 6 T 7 T 8 F 2 AD 3 BCD 4 ACD 5 BCDE 2 D 3 A 4 D 5 B 6 C 7 C 8 B 9 B 10 D 8、类型 作用域

五、综合题 1. 答:

影响存储分配策略的语言特征有: (1)过程能否递归;

(2)当控制从过程的活动返回时,局部变量的值是否要保留;

第 5 页 共 6 页

(3)过程能否访问非局部变量; (4)过程调用的参数传递方式; (5)过程能否作为参数被传递; (6)过程能否作为结果值传递;

(7)存储块能否在程序控制下动态地分配; (8)存储块是否必须显式地释放。 2. 答:

(1)静态存储分配的特点:编译时刻确定存储位置;访问效率高。主要用途:子程序的目标代码段、全局数据目标(全局变量)。

(2)栈(Stack)式存储分配的特点:嵌套调用次序、先进后出、生存期限于本次调用、自动释放。主要用途:过程的局部环境、活动记录。

(3)堆(Heap)式存储分配的特点:将内存空间分为若干块,根据用户要求分配;无法满足时,调用无用单元收集程序将被释放的块收集起来重新分配。主要用途:用于动态数据结构:存储空间的动态分配和释放。

第 6 页 共 6 页

本文来源:https://www.bwwdw.com/article/v3hh.html

Top