- 189
- 0
- 约3.56千字
- 约 4页
- 2017-03-05 发布于重庆
- 举报
上海大学编译原理试卷
一.填空题(10分)
1.符号表内容可作为上下文语义检查和作为目标代码生成阶段地址分配 的依据。
2.常见的中间代码形式有逆波兰式、三元式和 四元式 。
3.PL/0编译程序为过程活动记录分配的联系单元分别是动态链、静态链和 返回地址 。
4.寄存器分配的原则是通过对寄存器的有效利用提高 目标代码 的运行效率。
5.算符优先文法G的每一对终结符之间至多成立一种 优先关系 。
6.布尔表达式翻译的语义规则中使用了拉链和 回填 技术。
7.语法分析工作和目标代码生成工作分属于编译过程的前端和 后端 。
8.属性文法表示为A=(G,V,F),其中V和F分别是 属性的有穷集 和断言。
9.G是一个文法,S是G的开始符号,如果 符号串x是从识别符号推导出来的 则x是一个句子。
10.PL/0语言中表达式的语法分析部份由子程序 expression 、term和factor构成。
二、单项选择题(10 分)
yacc是一种常用的 自动构造工具。
a)语法分析器 b)词法分析器 c) 语法和词法分析器 d)语义分析器
给定文法A→Aa | ab,下面的符号串中,为该文法句子的是 。
a) aaba b) aaab c) baaa d) abaa
表达式 a + b*c / d对应的逆波兰式是 。
a) abc/*d+ b) abc*d/+ c) ab*c/d+ d) abc*/d+
4.算符优先分析法中对句型中的 进行归约。
a) 句柄 b) 直接短语 c) 素短语 d)最左素短语
5.设有文法G[S]:S→S*S |a+a | b ,该文法 。
a) 不含左递归 b)含公共左因子 c) 是OG文法 d) 是LL(1)文法
6.对于第5题中文法G[S],FIRSTVT(S)= 。
a) { *,+,b,a } b) { b,*,a} c) { b,a} d) { a,*,+ }
7.PL/0语言允许过程的递归调用,它的存储组织采用 方法。
a) 静态分块分配 b) 动态堆式分配 c) 动态栈式分配 d) 静态分配
8.2型文法又被称为 文法。
a) 上下文有关 b) 上下文无关 c) 正规 d) 短语
9.PL/0源程序中的单词“:=”和“end”经识别后对应的单词种类分别是 。
a) becomes和end b) eql 和endsym c) becomes和endsym d) eql和 end
10.若某变量A 在本基本块后不再被继续引用,则称A是 。
a) 活跃变量 b) 非活跃变量 c) 静态变量 d) 动态变量
三、是非题(10 分)
1. 正规式的描述能力强于正规文法的描述能力 (F )
2. 变量的待用信息指出了该变量值的后续引用的位置 (T )
3. PL/0编译程序的语法分析采用的是自顶向下的预测分析方法 (F )
4. 为了及时回填有关四元式的转移目标,可对文法作等价改写 (T )
5. 句型的句柄定义为该句型中位于最左边的短语 ( F)
6. 算符文法的句型中不含相邻的非终结符号 (T )
原创力文档

文档评论(0)