级语言的源程序转换成低级语言程序,是翻译程序的一种。编译程序与解释程序都是将高级语言翻译成低级语言,但编译程序要先编译生成目标代码、再执行目标代码,解释程序边转换边执行,不生成目标代码。
9、判断下图FA是NFA还是DFA,并用正规式来描述它所识别的语言。
3
f1
0
A
0
1
是DFA1分,对应的正规式为:
10101014分B
10、判断下图FA是NFA还是DFA,并用正规式来描述它所识别的语言。(2011)0
01
A
B
0
是NFA因为A状态输入0可以转换到A或B两状态。等价正规式:0010001
11、有文法及其语义子程序如下:
S→T
pri
tTh
T→T1EThT1hEh
T→EE→(T)E→a
ThEhEhThEh1
采用移进归约的分析方法,当分析器的输入为aaa时,画出其语法树(可以带注释、也可以不带注释),并求输出的结果。
语法树(略),输入为aaa时,输出的结果为:3
12(2014)、空心圆柱体的表面积计算公式如
S231416RrRr231416Rrh采用LR语法制导翻译技术生成相应的三地址代码,然后运用DAG对其进行局部优化,试写出能生成最优目标代码的优化后的三地址代码序列。
可以采用合并已知量、删除公共子表达式、删除无用赋值、交换语句
位置等优化方法,得到三地址代码序列如下:
1T1Rr
2T262832T1
3T3T2h
4T4Rr
5T5T2T44
6ST5T3
f13、试求表达式ABCBC对应的后缀式和三地址代码。(2011)
后缀式:ABCBC三地址代码:T1CT2BT1T3AT2
T4CT5BT4T6T3T5
装
14、考虑如下的三地址语句序列:(2011)
订
L1readCA0
B1
B1
L2AABifB≥CgotoL3
B2
线
BB1gotoL2
B3
gotoL1
多余的语句,删去
L3writeA
halt
B4
1将该代码序列划分成基本块,并给每个基本块一个序号;2画出该代码序列的流图,每个基本块用1的序号表示;3若有循环,列出构成循环的节点基本块。(10分)1如图分成四个基本块B1、B2、B3、B42流图:
B1
B2
B3
B4
3构成循环的基本块是B2B3
15、有翻译模式如下:
S’→S
pri
tSh
S→a
Sh0
S→(T)ShTh1
T→T1,SThT1hSh
T→S
ThSh
5
f采用移进归约的分析方法,当分析器的输入为aa时,画出其语法树(可以带注释、也可以不带注释),并求输出的结果。(2011)
语法树:
ST
输出结果是:2
TS
ST
a
S
a
6
f得分二、构造识别下列语言的最小DFA(共20分):
1、正规式1(01)00;(7分)
1
1
A
B
D
装
00
10
C
订
求出NFA得4分,确定化了得6分,最小DFA的状态错漏一个扣1r