北语20秋《编译原理》作业2[答案]答案
20秋《编译原理》作业2
试卷总分:100 得分:100
一、单选题 (共 6 道试题,共 24 分)
1.若项目集Ik含有A->α · ,则在状态k时,仅当面临的输入符号a∈FOLLOW(A)时,才采取“A->α · ”动作的一定是_____。
A.LALR文法
B.LR(0)文法
C.LR(1)文法
D.SLR(1)文法
2.在 LR 分析法中,分析栈中存放的状态是识别规范句型_____的 DFA 状态。
A.句柄
B.前缀
C.活前缀
D.LR(0) 项目
3.词法分析器的输出结果是_____。
A.单词的种别编码
B.单词在符号表中的位置
C.单词的种别编码和自身值
D.单词自身值
4.语法分析器则可以发现源程序中的_____。
A.语义错误
B.语法和语义错误
C.错误并校正
D.语法错误
5.( )是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
A.语法分析
B.语义分析
C.中间代码生成
D.代码优化
E.目标代码生成
6.编译程序使用_____区别标识符的作用域。
A.说明标识符的过程或函数名
B.说明标识符的过程或函数的静态层次
C.说明标识符的过程或函数的动态层次
D.标识符的行号
北语20秋《编译原理》作业2[答案]多选题
二、多选题 (共 4 道试题,共 16 分)
7.编译中的语义处理是指( )两个功能。
A.审查每个语法结构的静态语义
B.生成程序的一种中间表示形式(中间代码),或者生成实际的目标代码
C.分析栈
D.向前搜索符集合
8.在编译过程中,语法分析器的任务是( )。
A.分析单词是怎样构成的
B.分析单词串是如何构成语句和说明的
C.分析语句和说明是如何构成程序的
D.分析程序的结构
9.数据空间的使用和管理方法分成( )。
A.静态存储分配
B.栈式动态存储分配
C.堆式动态存储分配
D.局部存储分配
10.通常编译过程分成前端和后端,其中前端包括( ),后端包括目标代码生成
A.语法分析
B.语义分析
C.中间代码生成
D.词法分析
三、判断题 (共 15 道试题,共 60 分)
11.当一个过程调用其他过程时,调用过程和被调用过程之间的通信经由局部量或者经由参数传递。
12.一个LR分析器由3个部分组成,其中分析表或分析函数,也可以称为驱动程序。
13.所有的编译程序都需要生成中间代码。
14.程序语言的语言处理程序是一种应用软件。( )
15.过程调用的实质是把程序控制转移到子程序(过程段)。
16.SLR(1)文法,其思想是基于容许LR(0)规范族中有冲突的项目集(状态)用向前查看一个符号的办法来进行处理,以解决冲突。
17.正则文法其产生式为 A->a , A->Bb, A,B∈VN , a 、 b∈VT 。( )
18.堆栈区用以存放编译时能确定所占用空间的数据。
19.一个文法所有句子的集合构成该文法定义的语言。( )
20.静态数据区用于可变数据以及管理过程活动的控制信息。
21.题目见图片{图}
22.递归下降分析法是自顶向下分析方法。( )
23.一个多遍的编译程序可以较之一遍的编译程序少占内存。
24.一个分程序是一个含有它自己的局部数据(变量)声明的语句。
25.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占单元大小、地址等等。( )
北语20秋《编译原理》作业2[答案]历年真题如下: