第1讲 绪论

本讲模拟练习题(不计分)随堂测验

1、编译是对()。
    A、机器语言的执行
    B、汇编语言的翻译
    C、高级语言的翻译
    D、高级语言程序的解释执行

2、用高级语言编写的程序经编译后产生的程序叫( ).
    A、源程序
    B、目标程序
    C、连接程序
    D、解释程序

3、( )不是编译程序的组成部分。
    A、词法分析程序
    B、代码生成程序
    C、设备管理程序
    D、语法分析程序

4、源程序是句子的集合,( )可以较好地反映句子的结构。
    A、线性表
    B、树
    C、完全图
    D、堆栈

5、编译程序是一种( )。
    A、汇编程序
    B、翻译程序
    C、解释程序
    D、目标程序

6、按逻辑上划分,编译程序第三步工作是( )。
    A、语义分析
    B、词法分析
    C、语法分析
    D、代码生成

7、编译程序中语法分析器接收以( )为单位的输入。
    A、单词
    B、表达式
    C、产生式
    D、句子

8、编译过程中,语法分析器的任务就是( )。
    A、分析单词是怎样构成的
    B、分析单词串是如何构成语句和声明的
    C、分析语句和声明是如何构成程序的
    D、分析程序的结构

9、语法分析时所依据的是( )
    A、语法规则
    B、词法规则
    C、语义规则
    D、等价变换规则

第2讲 程序设计语言及其文法

本讲模拟练习题(不计分)随堂测验

1、文法:G:S→xSx | y所识别的语言是( )。
    A、
    B、
    C、
    D、

2、给定文法A→bA|ca,为该文法句子的是( )。
    A、bba
    B、cab
    C、bca
    D、cba

3、设有文法G[S]:S®S1|S0|Sa|Sc|a|b|c,下列符号串中是该文法的句子有( )。
    A、ab0
    B、a0b01
    C、a0b0a
    D、bc10

4、文法G产生的( )的全体是该文法描述的语言。
    A、句型
    B、终结符集
    C、非终结符集
    D、句子

5、若文法G定义的语言是无限集,则文法必然是( )。
    A、递归的
    B、上下文无关的
    C、二义性的
    D、无二义性的

6、乔姆斯基(Chomsky)把文法分为四种类型,即0型、1型、2型、3型。其中3型文法是( )。
    A、非限制文法
    B、正则文法
    C、上下文有关文法
    D、上下文无关文法

7、一个上下文无关文法G包括四个组成部分,它们是一组非终结符号,一组终结符号,一个开始符号,以及一组( )。
    A、句子
    B、产生式
    C、单词
    D、句型

8、若一个文法是递归的,则它所产生的语言的句子( )。
    A、是无穷多个
    B、是有穷多个
    C、是可枚举的
    D、个数是常量

9、给定文法A→bA|cc,则符号串①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbcc中,是该文法句子的是( )。
    A、①
    B、③④⑤
    C、②④
    D、①⑤

10、文法E→E+E|E*E|i的句子i*i+i*i有( )棵不同的语法树。
    A、1
    B、3
    C、5
    D、7

11、文法 S→aaS|abc 定义的语言是( )。
    A、
    B、
    C、
    D、

12、文法G:S→xSx| xS|y所识别的语言是()。
    A、
    B、
    C、
    D、

13、由文法的开始符号出发经过若干步(包括0步)推导产生的文法符号序列称为( )。
    A、语言
    B、句型
    C、句子
    D、句柄

14、下列符号串不可以由符号集S={a,b}上的正闭包运算产生的是( )。
    A、ε
    B、a
    C、aa
    D、ab

15、文法G:S → x xS | y 所识别的语言是( )。
    A、
    B、
    C、
    D、

16、文法G:S → xS | y 所识别的语言是( )。
    A、
    B、
    C、
    D、

第3讲 词法分析

本讲模拟练习题(不计分)随堂测验

1、词法分析器的输出结果是( )。
    A、单词自身值
    B、单词在符号表中的位置
    C、单词的种别编码
    D、单词的种别编码和自身值

2、词法分析器不能( )。
    A、识别出数值常量
    B、过滤源程序中的注释
    C、扫描源程序并识别记号
    D、发现括号不匹配

3、( )这样一些语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。
    A、存在
    B、不存在
    C、无法判定是否存在
    D、以上答案都不对

4、两个有穷自动机等价是指它们的( )。
    A、状态数相等
    B、有向弧数相等
    C、所识别的语言相等
    D、状态数和有向弧数相等

5、词法分析器用于识别( )。
    A、句子
    B、产生式
    C、单词
    D、句型

6、正则表达式等价是指( )。
    A、都是定义在一个字母表上的正则表达式
    B、使用的运算符相同
    C、代表同一正则集
    D、代表不同正则集

7、已知文法G[S]:S→A1, A→A1|S0|0,与G等价的正规式是( )。
    A、
    B、
    C、
    D、

8、与等价的正规式是( )。
    A、
    B、
    C、
    D、

9、如图所示自动机M,请问下列哪个字符串不是M所能识别的( )。
    A、bbaa
    B、abba
    C、abab
    D、aabb

10、有限状态自动机能识别( )。
    A、上下文无关语言
    B、上下文有关语言
    C、正规语言
    D、0 型文法定义的语言

11、( )不是DFA的成分。
    A、有穷字母表
    B、多个初始状态的集合
    C、多个终态的集合
    D、转换函数

12、DFA M(见图)接受的字集为( )。
    A、以0开头的二进制数组成的集合
    B、以0结尾的二进制数组成的集合
    C、含奇数个0的二进制数组成的集合
    D、含偶数个0的二进制数组成的集合

13、同正规式等价的正规式是()。
    A、
    B、
    C、
    D、

14、称有限自动机等价是指( )。
    A、都是定义在一个字母表上的有限自动机
    B、状态数和有向边数相等
    C、状态数或有向边数相等
    D、所能识别的字符串集合相等

15、同正规式等价的正规式为( )。
    A、
    B、
    C、
    D、

16、词法分析器的加工对象是()。
    A、中间代码
    B、单词
    C、源程序
    D、元程序

17、如果一个正规式所代表的集合是无穷的,则它必含有的运算是( )。
    A、接运算“·”
    B、或运算“|”
    C、闭包运算“* ”
    D、括号“(”和“)”

18、同正规式等价的文法是( )。
    A、G1:S→aS|bS|ε
    B、G2:S→aSb|ε
    C、G3:S→ aS|Sb|ε
    D、G4:S→ abS|ε

19、一个正规式只能对应一个确定的有限状态自动机。

20、一个正规语言可能对应多个正规文法。

第4讲 语法分析_1

本讲模拟练习题(不计分)随堂测验

1、如果文法G是无二义的,则它的任何句子α( )。
    A、最左推导和最右推导对应的语法树必定相同
    B、最左推导和最右推导对应的语法树可能不同
    C、最左推导和最右推导必定相同
    D、可能存在两个不同的最左推导,但它们对应的语法树相同

2、采用自上而下分析,不必( )。
    A、消除回溯
    B、消除左递归
    C、消除右递归
    D、提取公共左因子

3、识别上下文无关语言的自动机是( )。
    A、下推自动机
    B、NFA
    C、DFA
    D、图灵机

4、( )文法不是LL(1)的。
    A、递归
    B、右递归
    C、2型
    D、含有公共左因子的

5、已知文法G是无二义的,则对G的任意句型α( )。
    A、最左推导和最右推导对应的语法树必定相同
    B、最左推导和最右推导对应的语法树可能相同
    C、最左推导和最右推导必定相同
    D、可能存在两个不同的最左推导,但他们对应的语法树相同

6、在自上而下的语法分析中,应从( )开始分析。
    A、句型
    B、句子
    C、文法开始符号
    D、句柄

7、一个文法G,若( ),则称它是LL(1)文法。
    A、G中不含左递归
    B、G无二义性
    C、G的LL(1)分析表中不含多重定义的条目
    D、G中产生式不含左公因子

8、语法分析器的输入是()。
    A、Token序列
    B、源程序
    C、目标程序
    D、符号表

9、在递归子程序方法中,若文法存在左递归,则会使分析过程产生( )。
    A、回溯
    B、非法调用
    C、有限次调用
    D、无限循环

10、LL(1)分析法中“1”的含义是在输入串中查看一个输入符号,其目的是( )。
    A、确定最左推导
    B、确定句柄
    C、确定使用哪一个产生式进行展开
    D、确定是否推导

第5讲 语法分析_2

本讲模拟练习题(不计分)随堂测验

1、在语法分析处理中,FIRST集合、FOLLOW集合均是( )。
    A、非终结符集
    B、终结符集
    C、字母表
    D、状态集

2、在编译过程中,如果遇到错误应该( )。
    A、把错误理解成局部的错误
    B、对错误在局部范围内进行纠正,继续向下分析
    C、当发现错误时,跳过错误所在的语法单位继续分析下去
    D、当发现错误时立即停止编译,待用户改正错误后再继续编译

3、已知文法G[S]: S→eT|RT T→DR|ε R→dR|ε D→a|bd 求FIRST(S)=()。
    A、{e}
    B、{e,d,a,b}
    C、{e,d}
    D、{e,d,a,b,ε}

4、已知文法G[S]: S→eT|RT T→DR|ε R→dR|ε D→a|bd 求FOLLOW(D)=()。
    A、{d,e}
    B、{d,ε}
    C、{d,$}
    D、{a,d}

5、FIRST集中可以含有ε。

6、FOLLOW集中可以含有ε。

7、SELECT集中可以含有ε。

第6讲 语法分析_3

本讲模拟练习题(不计分)随堂测验

1、若a为终结符,则A→α · aβ为( )项目。
    A、归约
    B、移进
    C、接受
    D、待约

2、一个句型中的( )称为该句型的句柄。
    A、最左直接短语
    B、最右直接短语
    C、终结符
    D、非终结符

3、在自底向上的语法分析方法中,分析的关键是( )。
    A、寻找句柄
    B、寻找句型
    C、消除递归
    D、选择候选式

4、在自顶向下的语法分析方法中,分析的关键是( )。
    A、寻找句柄
    B、寻找句型
    C、消除递归
    D、选择候选式

5、若B为非终结符,则 A→a · Bb 为( )。
    A、移进项目
    B、归约项目
    C、接受项目
    D、待约项目

6、在规范归约中,用( )来刻画可归约串。
    A、直接短语
    B、句柄
    C、最左素短语
    D、素短语

7、下列动作中,不是自下而上分析动作的是( )。
    A、移进
    B、展开
    C、接受
    D、报错

8、下列动作中,不是自上而下分析动作的是( )。
    A、匹配
    B、展开
    C、移进
    D、报错

9、若B为非终结符,则A→α· 为( )项目。
    A、归约
    B、移进
    C、接受
    D、待约

10、设有文法G[T]: T→T*F|F F→F↑P|P P→(T)|a 该文法句型T*P↑(T*F)的句柄是下列符号串( )。
    A、(T*F)
    B、T*F
    C、P
    D、P↑(T*F)

11、LR分析表中的转移表(goto)是以()作为列标题的。
    A、终结符
    B、非终结符
    C、终结符或非终结符
    D、表示状态的整型数

12、LR分析表中的动作表(action)是以( )作为列标题的。
    A、终结符
    B、非终结符
    C、终结符或非终结符
    D、终结符和结束符$

13、设有文法G[T]: T→T*F|F F→F↑P|P P→(T)|a 该文法句型T*F↑(T*F)的句柄是下列符号串()。
    A、(T*F)
    B、T*F
    C、P
    D、P↑(T*F)

14、下列项目中为可归约项目的是()。
    A、E′→· E
    B、L→·
    C、L→-· L
    D、F→L*· F

15、同正规式等价的正规式是( )。
    A、
    B、
    C、
    D、

16、LR分析器的核心部分是一张分析表,该表由( )组成。
    A、ACTION表
    B、GOTO表
    C、预测分析表
    D、ACTION表和GOTO表

第7讲 语法分析_4

本讲模拟练习题(不计分)随堂测验

1、一个LR(1)文法合并同心集后若不是LALR(1)文法( )
    A、则可能存在移进/归约冲突
    B、则可能存在归约/归约冲突
    C、则可能存在移进/归约冲突和归约/归约冲突
    D、以上说法都不对

2、若状态k含有项目“A→α· ”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A →α”归约的语法分析方法是( )。
    A、LALR分析法
    B、R(0)分析法
    C、LR(1)分析法
    D、SLR(1)分析法

3、LR(1)文法都是( )。
    A、无二义性且无左递归
    B、可能有二义性但无左递归
    C、无二义性但可能是左递归
    D、可以既有二义性又有左递归

4、同心集合并可能会产生新的( )冲突。
    A、二义
    B、移进/移进
    C、移进/归约
    D、归约/归约

5、就文法的描述能力来说,有( )。
    A、SLR(1) ⊂ LR(0)
    B、LR(1) ⊂ LR(0)
    C、SLR(1) ⊂ LR(1)
    D、无二义文法 ⊂ LR(1)

6、在LR(0)的Action表中,如果某行中存在标记为“”的栏,则( )。
    A、该行必定填满“
    B、该行未必填满“
    C、其他行可能也有“
    D、goto表中也可能有“

7、若状态k含有项目“A→α·”,对任意非终结符a,都用规则“A →α”归约的语法分析方法是( )。
    A、LALR分析法
    B、LR(0)分析法
    C、LR(1)分析法
    D、SLR(1)分析法

8、在SLR( 1)的Action表中,如果某行中存在标记为“”的栏,则( )。
    A、该行必定填满“
    B、该行未必填满“
    C、其他行可能也有“
    D、goto表中也可能有“

第8讲 语法制导翻译_1

本讲模拟练习题(不计分)随堂测验

1、文法G[S]及其语法制导翻译定义如下: 产生式 语义动作 S’ → S print( S.num) S → ( L) S.num = L.num +1 S → a S.num = 0 L →L( 1), S L.num = L( 1).num + S.num L →S L.num = S.num 若输入为( a,( a)),且采用自底向上的分析方法,则输出为( )。
    A、0
    B、1
    C、2
    D、4

2、有文法G及其语法制导翻译如下所示( 语义规则中的*和+分别是常规意义下的算术运算符): E→E( 1) ∧ T {E.val = E( 1).val * T.val} E→T {E.val = T.val} T→T( 1)# n {T.val = T( 1).val + n.val} T→ n {T.val = n.val} 则分析句子3 ∧ 3 # 4其值为( )。
    A、10
    B、21
    C、14
    D、24

3、有一语法指导定义如下: S→bAb print “1” A→( B print “2” A→a print “3” B→aA) print “4” 若输入序列为b( a( a( aa)))b,且采用自底向上的分析方法,则输出序列为( )。
    A、32224441
    B、34242421
    C、12424243
    D、34442212

4、有一语法指导定义如下,其中+表示符号连接运算: S→B print B.vers B→a B.vers=a B→b B.vers=b B→Ba B.vers=a+B.vers B→Bb B.vers=b+B.vers 若输入序列为abab,且采用自底向上的分析方法,则输出序列为( )。
    A、aabb
    B、abab
    C、bbaa
    D、baba

5、使用( )可以定义一个程序的意义。
    A、语义规则
    B、词法规则
    C、产生规则
    D、词法规则

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

第9讲 语法制导翻译_2

本讲模拟练习题(不计分)随堂测验

1、关于将L-SDD转换为SDT的规则,以下选项中,正确的是( )。
    A、将计算某个非终结符号A的继承属性的动作放在产生式的最后
    B、将计算一个产生式左部符号的继承属性的动作放置在产生式的最后
    C、将计算某个非终结符号A的继承属性的动作插入到产生式右部中紧靠在A的本次出现之前的位置上
    D、将每个语义动作都放在产生式的最后

2、以下说法不正确的是( )。
    A、如果一个S-SDD的基本文法可以使用LR分析技术,那么它的SDT可以在LL语法分析过程中实现
    B、如果一个S-SDD的基本文法可以使用LR分析技术,那么它的SDT可以在LR语法分析过程中实现
    C、如果一个L-SDD的基本文法可以使用LL分析技术,那么它的SDT可以在LL语法分析过程中实现
    D、如果一个L-SDD的基本文法可以使用LL分析技术,那么它的SDT可以在LR语法分析过程中实现

3、以下说法不正确的是( )。
    A、使用语法制导翻译方案的编译程序能同时进行语法分析和语义分析
    B、语法制导翻译方案( SDT )是在产生式右部中嵌入了程序片段( 称为语义动作)的CFG
    C、SDD可以看作是SDT的具体实施方案
    D、将一个S-SDD转换为SDT的方法是:将每个语义动作都放在产生式的最后

4、在非递归的预测分析过程中进行翻译,以下说法不正确的是( )。
    A、要想在非递归的预测分析过程中进行翻译,需要扩展语法分析栈
    B、非终结符A的继承属性和综合属性的计算时机不同
    C、将非终结符A的继承属性和综合属性存放在不同的记录中
    D、综合属性在A出现之前就可以计算

5、在非递归的预测分析过程中进行翻译,以下说法不正确的是( )。
    A、要想在非递归的预测分析过程中进行翻译,需要扩展语法分析栈
    B、综合记录用于存放非终结符综合属性值
    C、动作记录,用来存放指向将被执行的语义动作代码的指针
    D、综合属性存放在A本身的记录中

6、在非递归的预测分析过程中进行翻译,以下说法不正确的是( )。
    A、分析栈中的每一个记录都对应着一段执行代码
    B、综合记录出栈时,要将综合属性值复制给后面特定的语义动作
    C、变量展开时( 即变量本身的记录出栈时),如果其含有继承属性,则要将继承属性值复制给后面特定的语义动作
    D、继承属性在A的儿子们都分析完毕之后才能计算

第11讲 中间代码生成_1

本讲模拟练习题(不计分)随堂测验

1、中间代码生成时所依据的是( )。
    A、语法规则
    B、词法规则
    C、语义规则
    D、等价变换规则

2、在编译程序中与中间代码生成无关的是( )。
    A、便于目标代码的优化
    B、便于存储空间的组织
    C、便于编译程序的移植
    D、便于目标代码的移植

3、以下说法不正确的是( )。
    A、对于声明语句,语义分析的主要任务就是收集标识符的类型等属性信息,为每一个名字分配一个相对地址
    B、从变量类型可以知道该变量在运行时刻需要的内存数量。在编译时刻,可以使用这些数量为每一个名字分配一个相对地址
    C、名字的类型和相对地址信息保存在相应的符号表条目中
    D、对声明的处理要构造符号表,但不产生中间代码

4、以下说法不正确的是( )。
    A、类型自身也有结构,用类型表达式来表示这种结构
    B、基本类型不是类型表达式
    C、类型名也是类型表达式
    D、将类型构造符作用于类型表达式可以构成新的类型表达式

5、数组元素的地址计算与数组的存储方式有关。

6、在程序中标识符的出现仅为使用性的。

7、在编译阶段只对可执行语句进行翻译。

8、在程序中标识符的出现仅为定义性的。

第12讲 中间代码生成_2

本讲模拟练习题(不计分)随堂测验

1、有文法G及其语法制导翻译如下所示( 语义规则中的*和+分别是常规意义下的算术运算符): 则分析句子1 ∧ 2 ∧ 3 # 4其值为( )。
    A、10
    B、34
    C、14
    D、54

2、用( )可以把a:=b+c翻译成四元式序列。
    A、语法规则
    B、词法规则
    C、语义规则
    D、等价变换规则

3、有文法G及其语法制导翻译如下所示( 语义规则中的*和+分别是常规意义下的算术运算符): 则分析句子2 ∧ 3 # 4其值为( )。
    A、10
    B、21
    C、14
    D、24

4、以下说法不正确的是( )。
    A、赋值语句翻译的主要任务是生成对表达式求值的三地址码
    B、在增量翻译方法中,gen( )函数不仅要构造出一个新的三地址指令,还要将它添加到至今为止已生成的指令序列之后
    C、如果一个赋值语句中涉及到数组元素,那么将该语句翻译成三地址码时要解决的主要问题是确定数组元素的存放地址,也就是数组元素的寻址
    D、数组元素的地址计算与数组的存储方式无关

5、数组元素的地址由两部分构成,一部分是基地址,另一部分是偏移量。

6、基地址通过查符号表即可获得。

7、数组元素的偏移地址的计算只取决于数组的下标。

8、设计数组引用的SDT的关键问题是:如何将地址计算公式和数组引用的文法关联起来。

第13讲 中间代码生成_3

本讲模拟练习题(不计分)随堂测验

1、关于布尔表达式的叙述,不正确的是( )。
    A、布尔常量是布尔表达式
    B、布尔常量不是布尔表达式
    C、关系表达式是布尔表达式
    D、将括号和逻辑运算符作用于布尔表达式得到一个新的布尔表达式

2、以下说法不正确的是( )。
    A、为布尔表达式和控制流语句生成目标代码时,关键问题之一是确定跳转指令的目标标号
    B、在生成跳转指令时,就可以确定目标标号
    C、在生成跳转指令时,目标标号还不能确定
    D、可以将标号的地址作为继承属性传递到生成相关跳转指令的地方,但是这样的做法需要再进行一趟处理,将标号和具体地址绑定起来

3、令非终结符B表示布尔表达式,为B设置两个继承属性true和false。B.true是一个地址,该地址中存放了当B为真时控制流转向的指令的标号;B.false也是一个地址,该地址中存放了当B为假时控制流转向的指令的标号,则下列SDT中不正确的是( )。
    A、B → true { gen( ‘goto’ B.true); }
    B、B → false { gen( ‘goto’ B.false); }
    C、
    D、

4、令非终结符B表示布尔表达式,为B设置两个继承属性true和false。B.true是一个地址,该地址中存放了当B为真时控制流转向的指令的标号;B.false也是一个地址,该地址中存放了当B为假时控制流转向的指令的标号,则下列SDT中不正确的是( )。
    A、B → true { gen( ‘goto’ B.true); }
    B、B → false { gen( ‘goto’ B.false); }
    C、
    D、

5、在分支和循环中会用到条件式,而用作条件式的通常是布尔表达式。

6、在控制流语句的翻译中,布尔表达式B被翻译成由跳转指令构成的跳转代码。

7、逻辑运算符&&、|| 和 ! 会出现在代码中。

第14讲 中间代码生成_4

本讲模拟练习题(不计分)随堂测验

1、令非终结符B表示布尔表达式。在布尔表达式的回填技术中,为非终结符B设置两个综合属性: B.truelist:指向一个包含跳转指令的列表,这些指令最终获得的目标标号就是当B为真时控制流应该转向的指令的标号;B.falselist:指向一个包含跳转指令的列表,这些指令最终获得的目标标号就是当B为假时控制流应该转向的指令的标号。则下列SDT中不正确的是()。
    A、 { }
    B、 { }
    C、 { }
    D、 { }

2、在下面的语句中,( )不需要回填技术。
    A、赋值语句
    B、goto语句
    C、条件语句
    D、循环语句

3、四元式之间的联系是通过( )实现的。
    A、指示器
    B、临时变量
    C、符号表
    D、程序变量

4、四元式表示法的优点为 ( )。
    A、不便于优化处理,但便于表的更动
    B、不便于优化处理,但节省存储空间
    C、便于优化处理,也便于表的更动
    D、便于表的更动,也节省存储空间

5、在回填技术中,生成一个跳转指令时,暂时不指定该跳转指令的目标标号。

6、在回填技术中,同一个列表list中的跳转指令具有相同的目标标号。

7、在回填技术中,同一个列表list中的跳转指令可能具有不同的目标标号。

8、在回填技术中,等到能够确定正确的目标标号时,才去填充指令的目标标号。

第15讲 运行存储分配

本讲模拟练习题(不计分)随堂测验

1、在目标代码生成阶段,符号表用于()。
    A、目标代码生成
    B、语义检查
    C、语法检查
    D、地址分配

2、PASCAL语言中过程声明的局部变量地址分配在( )。
    A、调用者的数据区中
    B、被调用者的数据区中
    C、主程序的数据区中
    D、公共数据区中

3、编译方法中,动态存储分配的含义是()。
    A、在编译阶段为源程序中的量进行分配
    B、在编译阶段为源程序中的量进行分配,运行时可动态调整
    C、在运行阶段为源程序中的量进行分配
    D、都不正确

4、运行阶段的存储组织与管理的目的是( )。
    A、提高编译程序的运行速度
    B、为运行阶段的存储分配做准备及提高目标程序的运行速度
    C、优化运行空间的管理
    D、节省内存空间

5、以下说法正确的是( )。
    A、对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略
    B、对于数据空间的存贮分配,C语言仅采用栈式贮存分配策略
    C、动态存储分配是指在编译阶段对源程序中的量进行分配,以使目标代码在运行时加快运行速度
    D、如果两个临时变量的作用域不相交,则可以将它们分配在同一单元中

6、以下说法正确的是( )。
    A、编译程序除解决源程序中用户定义的量在运行时刻的存储组织与分配问题之外,还应完成为临时变量和参与运算的寄存器组织好存储空间的任务
    B、由于C语言的函数允许递归调用,因此对C语言中的所有变量的单元分配一律采用动态分配方式
    C、动态数组的存储空间在编译时即可完全确定
    D、“运算符与运算对象类型不符”属于语法错误

7、以下说法正确的是( )。
    A、符号表由词法分析程序建立,由语法分析程序使用
    B、符号表的内容在词法分析阶段填入并在以后各个阶段得到使用
    C、对一般的程序设计语言而言,其编译程序的符号表应包含哪些内容及何时填入这些信息不能一概而论
    D、“运算符与运算对象类型不符”属于语法错误

第20讲 代码生成

本讲模拟练习题(不计分)随堂测验

1、在目标代码生成阶段,符号表用于( )。
    A、目标代码生成
    B、语义检查
    C、语法检查
    D、地址分配

2、经编译得到的目标程序是( )。
    A、机器语言程序或汇编语言程序
    B、四元式序列
    C、三元式序列
    D、二元式序列

3、( )不可能是目标代码。
    A、中间代码
    B、汇编代码
    C、绝对指令代码
    D、可重定位指令代码

4、以下说法不正确的是( )。
    A、源程序到目标程序的变换是等价变换,即两者结构不同,但语义是一致的
    B、源程序和目标程序是等价关系
    C、目标代码生成时,需要考虑目标计算机的指令系统
    D、窥孔优化是在中间代码层次上进行的优化工作

5、所有编译程序都有目标代码生成阶段。

6、代码生成器的设计要着重考虑目标代码的质量问题。

7、目标代码生成时,无需考虑目标计算机的系统结构。