刚才这种翻译模式属于:
A.编译B.解释C. D.
==正确答案:A ==
可以直接运行的目标代码是:
A.汇编指令代码B.可重新定位指令代码C.绝对指令代码D.
正确答案:C
编译五个阶段的工作和编译前后端建立对应关系正确的是:
A.前端:词法分析,语法分析;后端:中间代码产生,优化,目标代码生成。
B.前端:词法分析,语法分析,中间代码产生;后端:优化,目标代码生成。
C.前端:词法分析,语法分析,中间代码产生,优化;后端:词法分析,目标代码生成。
D.前端:词法分析,语法分析,中间代码产生,优化;后端:优化,目标代码生成。
正确答案:D
1(15分)(1)什么是编译程序?编译程序有哪些类型?编译程序的结构是怎样的?
答:1编译程序是把某一种语言程序(称为源语言程序)等价地转换成另一种语言程序(称为目标语言程序)的程序
2编译程序有:1)诊断编译程序(Diagnostic Compiler),2)优化编译程序(Optimizing Compiler),3)交叉编译程序(Cross Compiler),4)可变目标编译涅序(Retargetable Compiler)
3编译程序的结构是1)编译程序总框,2)遍,3)编译前端与后端
2(10分)(2)编译程序和解释程序的区别是什么?
答:编译程序和解释程序的区别是:
解释程序(解释器),它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;
编译程序(编译器),则是将源程序翻译成目标语言程序,然后在计算机上运行目标程序。
两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程,而在解释方式下,解释程序和源程序(或某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。
解释器翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立的目标程序。
3(15分)(3)学习编译原理的意义是什么?
答:学习编译原理的意义是
1学习编译程序构造原理,技术
1)提高对计算机系统总体认识
2)感悟计算思维
3)更好地理解"计算”
2更好地理解高级语言
3运用编译原理和方法构造实用工具
1)用"计算"的眼光看世界
2)用计算解决实际问题
4(20分)(4)编译中,遍、编译前端与后端的概念?遍和编译阶段有什么区别?
答:1编译中,遍、编译前端与后端的概念是:
遍:所谓"遍",就是对源程序或源程序的中间表示从头到尾扫描一次
编译前端:与源语言有关的部分,如词法分析,语法分析,语义分析与中间代码产生,与机器无关的优化
编译后端:与目标机有关的部分,与目标机有关的优化,目标代码产生2遍和编译阶段的区别是:阶段与遍是不同的概念
1)一遍可以由若干段组成
2)一个阶段也可以分若干遍来完成
5(20分)(5)编译程序的生成有哪些方法?请简单说明之。
答:编译程序的生成的方法有:
1)以机器语言和汇编语言为工具:可以针对具体的机器,充分发挥计算机的系统功能;生成的程序效率高
2)高级语言书写:程序易读,易理解,容易维护,生产的效率高;利用已有的某种语言的编译程序实现另一语言的编译程序
3)自编译方式
4)编译程序自动产生:编译程序一编译程序,编译程序产生器,编译程序书写系统
6(20分)(6)编译原理中用到的计算思维方法有哪些?
答:编译原理中用到的计算思维方法有:
1)抽象
2)自动化
3)问题分解
4)递归
5)权衡(折衷,Tradeoff)
**下面哪种说法正确?
A.标识符是语义概念,名字是语法概念
B.标识符是语法概念,名字是语义概念C. D. **
正确答案:B
下面哪些属于程序语言的语义定义?
A.表达式中圆括号必须匹配
B.类的声明必须以class开头
C.关于函数调用时参数传递方法的描述
D.函数体必须用return语句结尾
正确答案:C
P2的代码能够调用P1吗?
A.可以B.不可以C. D.
正确答案:A
下面哪种说法正确?
A.标识符是语义概念,名字是语法概念
B.标识符是语法概念,名字是语义概念C. D.
正确答案:B
下面说法的是错误的是:
A.名字的绑定(binding)是指将标识符与所代表的程序数据或代码进行关联
B.名字的绑定总是发生在编译过程中
C.名字的绑定可以发生在运行过程中D.
正确答案:B
在C语言中,下面选项只具有右值、不具有左值的是:
A.变量B.下标变量C.a + 5D.指针变量P
正确答案:C
1(20分)令文法G6为: N→D∣ND N→0∣1∣2∣3∣4∣5∣6∣7∣8∣9
(1)G6的语言L(G6) 是什么?
(2)给出句子0127、34和568的最左推导和最右推导
3(20分)令文法为
E→T∣E+T∣E-T
T→F∣TF∣T/F
F→(E)∣i
(1)给出i+ii、i(i+i)的最左推导和最右推导
(2)给出i+i+i、i+ii的语法树
e是什么?
A.字符B.字C.正规式D.
正确答案:B、C
Æ是什么?
A.集合B.字C.正规式D.
正确答案:A、C
a (a ÎS)是什么?
A.字符B.字C.正规式D.
正确答案:A、B、C
图中DFA M识别的L(M) 是什么?
A.L(M)={以aa或bb开头的字}
B.L(M)={含aa或bb的字}
C.L(M)={以aa或bb结尾的字}
D.
正确答案:B
哪个DFA识别{e} ?
A.双圈q0
B.单圈q0
C. D.
正确答案:A
图中NFA M1识别的L(M1) 是什么?
A.L(M1)={以aa或bb开头的字}
B.L(M1)={含aa或bb的字}
C.L(M1)={以aa或bb结尾的字}
D.
正确答案:B
图中NFA M2识别的L(M2) 是什么?
A.L(M2)={abn | n³1}
B.L(M2)={anbn | n³1}
C.L(M2)={ambn | m,n³1}
D.
正确答案:C
1(30分)证明3.3.1中,关系交换律、结合律等五个关系
1、U | V=V | U
2、U | (V | W)=(U | V) |W
3、U(VW)=(UV)W
4、U(V | W)=UV | UW
5、U=U =U
参考答案:
6(5分)给出下面正规式表达式:以01结尾的二进制数串
参考答案:
(0|1)*01
7(5分)给出下面正规式表达式:能被5整除的十进制整数;
参考答案:
(1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*(0|5)|0|5
8(5分)给出下面正规式表达式:包含奇数个1或奇数个0的二进制数串;
参考答案:
0*1(0|10*1)*|1*0(0|10*1)*
9(5分)给出下面正规式表达式:不包含字串abb的由a和b组成的符号串的全体
参考答案:
b*(a*|(ba)*)*
两个状态s和t是可区分的,是指:
A.对于任意字a,要么s读出a停止于终态而t读出a停止于非终态,要么t读出a停止于终态而s读出a停止于非终态
B.存在一个字a,要么s读出a停止于终态而t读出a停止于非终态,要么t读出a停止于终态而s读出a停止于非终态
C. D.
正确答案:B
按照上述原则对DFA的状态集合S进行第一次划分,正确的分法是:
A.初态和非初态
B.终态和非终态
C.初态、终态、其他状态D.
正确答案:B
2(20分)对下面情况给出DFA及正规表达式:
{0,1}上的含有子串010的所有串;
正确答案:
对于最后H步是5,1,6,Y,有小伙伴私信应为5,1,2,6,Y,添加H-F的路径
3(20分)一个人带着狼、山羊和白菜在一条河的左岸。有一条船,大小正好能装下这个人和其它三件东西中的一件。人和他的随行物都要到河的右岸。人每次只能将一件东西摆渡过河。但若人将狼和羊留在同一岸而无人照顾的话,狼将把羊吃掉。类似地,若羊和白菜留下来无人照看,羊将会吃掉白菜。请问是否有可能摆渡过河去,使得羊和白菜都不被吃掉?如果可能,请用有限自动机写出渡河的方法。
正确答案:
E’实现了吗 ?
A.实现了B.没实现C. D.
正确答案:A
E’不考虑Follow集合有问题吗 ?
A.有问题B.没有问题C. D.
正确答案:B
1(50分)
1、考虑下面文法G1:S→a∣ᴧ∣(T)T→T,S∣S
(1)消去G1的左递归
(2)给出所有非终结符的FIRST()和FOLLOW()集合。
(3)对每个非终结符,写出不带回溯的递归子程序。
(4)经改写后的文法是否是LL(1)的?给出它的预测分析表。
参考答案:
2(30分)对下面的文法:
Expr→—Expr
Expr→(Expr)∣Var ExprTail
ExprTail→—Expr∣Ɛ
Var→id VarTail
VarTail→(Expr)∣Ɛ
(1)构造LL(1)分析表(要求给出所有非终结符的FIRST()和FOLLOW()集合)
(2)给出句子id——id(id)的分析过程
参考答案:
你认为什么是可归约串?
A.连续出现的单词序列B.短语C. D.
正确答案:B
对于文法的句子来说,它的算符优先分析的结果就是语法树。
A.正确B.错误C. D.
正确答案:B
1( 20分 )令文法G1为
E→E+T∣T
T→T*F∣F
F→(F)∣i
2( 40分 )考虑下面的表格结构文法G2:
S→a|Λ|(T)
T→T,S|S
(1)给出(a,(a,a))的最左和最右推导
(2)指出(((a,a),Λ,(a)),a)的规范规约及每一步的句柄。(3)根据这个规范规约,给出“移进——规约”的过程,并给出它的语法树自下而上的构造过程。
正确答案:
3( 40分 )考虑下面的表格结构文法G2:
S→a|Λ|(T)
T→T,S|S
(1)计算文法的FIRSTVT和LASTVT集合
(2)G2是算符优先文法吗?
(3)给出输入串(a,(a,a))的算符优先分析过程
(4)给出分析树和语法树,他们有什么区别?
正确答案:
考虑非终结符A,B和C,其中,A有一个继承属性a和一个综合属性b,B有综合属性c,C有继承属性d。产生式A→BC不可能有规则是:
A.C.d:=B.c+1
B.A.b:=B.c+C.d
C.B.c := A.aD.
正确答案:C
某属性文法包含下面的定义,该文法是L-属性文法吗?
产 生 式 语 义 规 则
A→LM L.i := g(A.i)
M.i :=m(L.s)
A→QR R.i := r(A.i)
Q.i :=q(R.s)
A.s :=f(Q.s)
A.是B.否C. D.
正确答案:B
中缀表达式a+b+c的翻译成后缀式是:
A.ab+c+
B.a+bc+
C.abc++
D.abc+
正确答案:A
照本节所讲的一遍扫描的翻译模式工作,当一个布尔表达式规约分析翻译完成时,该布尔表达式生成的所有四元式都是完整的,没有需要回填的四元式。
A.B.
正确答案:错