当前位置:文档之家› 编译原理复习题

编译原理复习题

一、填空题
1. 将高级语言翻译成机器语言的翻译程序有两种: 和 。
2. 程序设计语言的单词一般可分为5类: 、 、常数、算符、界符。
3. 假读也称为 或 ,是指仅向前读取字符和判断字符是什么,判明后再处
理已读字符。
4. LEX程序由3部分组成:说明部分、 和辅助过程,它们之间用 做间
隔。
5. 常见的中间语言有 、树结构形式、三元式、 等。
6. 布尔表达式在程序语言中有两个基本功用:作为控制语句的 ,和作为 ,
获得逻辑值。
7. 源程序出错,一般分为 和 。
8. 循环代码优化的5种方式是: 、强度削弱、删除归纳变量、循环展开、 。
9. 活动记录是指一块用来存放一个过程一次执行所需要的 的连续 。
10. 衡量目标代码生成程序效率的两个指标通常是:目标代码的 、执行目标代码
所需的 。
11. 将高级语言翻译成机器语言的翻译程序有两种: 和 。
12. 有限自动机分为两类: 有限自动机和 有限自动机。
13. LEX程序由3部分组成:说明部分、 和辅助过程,它们之间用 做间隔。
14. 语法分析按句型产生方式区分为 和 的语法分析方法。
15. 常见的中间语言有 、树结构形式、三元式、 等。
16. 变址取数:(=[],T1[T],-,x),相当于 := 。
17. 过程调用的实质是把 转移到 运行。
18. 从程序的范围上,可以将优化分为:局部优化、 和 。
19. 递归子程序是指子程序调用了它本身,包括 递归调用和 递归调用两种。
20. 目标程序代码的形式有: 代码、可重位代码或 代码。
21. 将高级语言翻译成机器语言的翻译程序有两种: 和 。
22. 在计算机系统中,程序设计语言可分为机器语言、 、 。
23. 编译过程,从逻辑上可划分为:词法分析、语法分析、语义分析、 、代码
优化、 6个阶段。
24. 对于符号表,一般有3种构造和处理方法,即 、 和杂凑技术。
25. 所谓的语言是指符合 的全部句子所组成的 。
二、选择题
1. 四元式是一种普遍采用的中间代码形式,一个四元式由四个部分组成:OP、ARG1、
ARG2、RESULT,说法正确的是 。
A. ARG1表示算符,OP、ARG2表示运算量,RESULT表示运算结果
B. ARG2表示算符,ARG1、OP表示运算量,RESULT表示运算结果
C. RESULT表示算符,ARG1、ARG2表示运算量,OP表示运算结果
D. OP表示算符,ARG1、ARG2表示运算量,RESULT表示运算结果
2. 数组元素引用(相当于x:=T1[T])相应的四元式是 。
A.(=[],T1[T],-,x) B.(x,T1[T],-, =[]) C.(T1[T],=[] ,-,x) D.(-,T1[T],
=[] ,x)
3. 算符优先分析法是自下而上进行句型归约的一种分析方法,它是处理 的一
种有力工具。
A. 逻辑表达式 B. 算术表达式
C. 加法和减法 D. 乘法和除法
4. LR分析法是一种 。
A.自右向左、自下而上的句柄归约方法 B. 自左向右、自上而下的句柄归约
方法
C.自右向左、自上而下的句柄归约方法 D. 自左向右、自下而上的句柄归约
方法
5. 下面 不是目标程序代码的形式。
A. 转换代码 B. 可重位代码 C. 汇编代码 D.绝对机器代码
6. 运行时程序的存储空间中的数据区可被划分为: 。
A. 静态数据区、目标代码区、堆区 B. 目标代码区、栈区、堆区
C. 静态数据区、栈区、目标代码区 D. 静态数据区、栈区、堆区
7. 对文法符号X的值(属性)进行描述,如用X.TYPE、X.CAT、X.VAL,相应属性 是
正确的?
A.类型、种属、值 B.种属、类型、值 C.值、种属、类型 D.类型、值、
种属
8. 3型语言的识别器是 。
A.图灵机 B.线性界限自动机 C.下推自动机 D.有限自动机
9. 中间代码也常用树结构来表示,在树中, 分别代表运算符和运算量。
A. 叶节点和非叶节点 B. 非叶节点和根节点 C. 非叶节点和叶节点
D. 根节点和叶节点
10. 逆波兰表示法是算术表达式的后缀表示法,以下 是正确的表达式a+(b*c)
的逆波兰表示法?
E. a+bc* B. a*bc+ C. abc*+ D. abc+*
11. LL(1)分析器由 3部分组成。
A. LL(1)分析表、文法符号表、总控程序 B. LL(1)分析图、语法符号栈、
总控程序
C. LL(1)分析表、语法符号栈、总控程序 D. LL(1)分析表、语法符号栈、
引导程序
12. LR分析法是一种 。
A.自右向左、自下而上的句柄归约方法 B. 自左向右、自上而下的句柄归约
方法
C.自右向左、自上而下的句柄归约方法 D. 自左向右、自下而上的句柄归约
方法
13. FORTRAN程序中,通过 语句来开辟公用区。
F. PUBLIC B. PRIVATE C. COMMON D. PROTECT
14. 以下 不是文法的基本化简技术。
A. 消除无用符号和无用产生式 B. 消除单个产生式 C. 消除或规范空符产
生式 D.消除终结符
15. 对文法符号X的值(属性)进行描述,如用X.TYPE、X.CAT、X.VAL,相应属性 是
正确的?
A.类型、种属、值 B.种属、类型、值 C.值、种属、类型 D.类型、值、
种属
16. 运行时程序的存储空间中的数据区可被划分为: 。
A. 静态数据区、目标代码区、堆区 B. 目标代码区、栈区、堆区
C. 静态数据区、栈区、目标代码区 D. 静态数据区、栈区、堆区
17. 3型语言的识别器是 。
A.图灵机 B.线性界限自动机 C.下推自动机 D.有限自动机
18. 文法的规范归约就是句型的 。
A.短语归约 B.句柄归约 C.直接短语归约 D. 语法树归约
19. 在高级语言的参数传递方式中,以下 不是传递参数的方式。
A. 传地址方式 B.传名字 C.传初值 D.传值方式
20. 对数组元素赋值(相当于T1[T]:= x)相应的四元式是 。
A.([]=,x,-, T1[T]) B.(x,T1[T],-, []=) C.(T1[T],[]=,-,x) D.
(-,T1[T],[]= ,x)
21. 对文法符号X的值(属性)进行描述,如用X.TYPE、X.CAT、X.VAL,相应属性 是
正确的?
A.类型、种属、值 B.种属、类型、值 C.值、种属、类型 D.类型、值、
种属
22. 形式语义学可以分为 ?
A.操作语义学、指称语义学、公理语义学 B. 操作语义学、语言语义学、公理
语义学
C.操作语义学、指称语义学、文法语义学 D. 语言语义学、指称语义学、公理
语义学
23. 逆波兰表示法是算术表达式的后缀表示法,以下 是正确的表达式a+(b*c)
的逆波兰表示法?
G. a+bc* B. a*bc+ C. abc*+ D. abc+*
24. 四元式是一种普遍采用的中间代码形式,一个四元式由四个部分组成:OP、ARG1、
ARG2、RESULT,说法正确的是 。
H. ARG1表示算符,OP、ARG2表示运算量,RESULT表示运算结果
I. ARG2表示算符,ARG1、OP表示运算量,RESULT表示运算结果
J. RESULT表示算符,ARG1、ARG2表示运算量,OP表示运算结果
K. OP表示算符,ARG1、ARG2表示运算量,RESULT表示运算结果
三、简答题
1. 简述编译过程有哪些步骤?
2. 什么是语法制导翻译?
3. 简述高级语言对存储空间的存储分配策略。
4. 四元式(return,-,-,-)表示什么操作?
5. 静态语义检查通常包括哪些内容?
6. 简述编译过程有哪些步骤?
7. 文法是一个四元组:G[S]=(VN,VT,P,S),其中,VN,VT,P,S分别代表什么?
8. 将扫描器分离主要考虑了哪三种因素?
9. 简述高级语言对存储空间的存储分配策略。
10. 基本块是中间语言代码序列的程序段,其具有哪些性质?

相关主题