koorio.com
海量文库 文档专家
当前位置:首页 >> 工学 >>

2011年西安电子科技大学考研复试-编译原理


编译原理
一、选择题(本大题共 20 小题,每小题 1 分,共 20 分) 1、描述一个语言的文法是___________。 a、唯一的 b、不唯一的 c、个数有限的 2、汇编程序是将______翻译成______;编译程序是将_______翻译成__________。 a、汇编语言程序 b、机器语言程序 c、高级语言程序 d 汇编语言或机器语言程序 3、设有文法 G[I]: I→I0|I1|I a|Ic|a|b|c 下列符号串中是该文法的句子的有___________________。 ①ab0 ②a0c01 ③aaa ④bc10 可选项有 a、① b、②③④ c、③④ d、①②③④ 4、生成非 0 开头的正偶数集的文法是______________。 a、Z::=ABC c、Z::=ABC|2|4|6|8 C::=0|2|4|6|8 C::=0|2|4|6|8 B::=BA|B0|ε B::=BA|B0|0 A::=1|2|3|4|5|6|7|8|9 A::=1|2|3|4|5|6|7|8|9 b、Z::=ABC d、Z::=ABC|2|4|6|8 C::=0|2|4|6|8 C::=0|2|4|6|8 B::=BA|B0|0 B::=BA|B0|ε A::=1|2|3|4|5|6|7|8|9 A::=1|2|3|4|5|6|7|8|9 5、一个上下文无关文法 G 包括四个组成部分依次为:一组_____、一个_____、一组 _____、一组______。 a、字符串 b、字母数字串 c、产生式 d、结束符号 e、开始符号 f、文 法 g、非终结符号 h、终结符号 6、现有前缀表示的表达式文法 G1: E::=-EE E::=-E E::=a|b|c 则文法的句子—a-bc 的所有可能语法树有______棵。 a、1 b、2 c、3 d、4 7、下列文法__________二义文法 E::=EiT|T T::=T+F|iF|F F::=E*|( 可选项有: a、是 b、不是 c、无法判断。 8、语法分析的常用方法是_________: ①自顶向下 ②自底向上 ③自左向右 ④自右向左 可选项有: a、①②③④ b、①② c、③④ d、①②③ 9、LR(K)文法是_________。 a、从左到右分析,共经过 K 步的一种编译方法。
1

b、从左到右分析,每次向前预测 K 步的一种编译方法。 c、从左到右分析,每次向貌似句柄的符号串后看 K 个输入符号的一种编译方法。 d、从左到右分析,每次走 K 步的一种编译方法。 10、素短语是指_______的短语。 ①至少包含一个符号 ②至少包含一个非终结符号 ③至少包含一个终结符号 ④除自身外不再包含其它终结符号 ⑤除自身外不再包含其它非终结符号 ⑥除自身外不再包含其它短语 ⑦除自身外不再包含其它素短语 可选项有: a、①④ b、①⑤ c、①⑥ d、②④ e、③⑤ f、③⑦g、②⑦ 11、文法的二义性和语言的二义性是两个____________概念。 a、不同 b、相同 c、无法判断 12、在编译中产生语法树是为了____________。 a、语法分析 b、语义分析 c、词法分析 d、产生目标代码 13、下述正规表达式中________与(a*+b)*(c+d)等价。 ① a*(c+d)+b(c+d) ② a*(c+d)*+b(c+d)* ③ a*(c+d)+b*(c+d) ④ (a+b)*c+(a+b)*d ⑤ (a*+b)*c+(a*+b)*d 可选项有:a、① b、② c、③ d、④ e、⑤ f、④⑤ g、③④⑤ 14、_______这样的语言,他们能被确定的有限自动机识别,但不能用正规表达式表 示: a、存在 b、不存在 c、无法判定是否存在 15、LL(K)文法________二义性的。 a、都是 b、都不是 c、不一定都是 16、下面的文法是__________。S::=aAa|aBb|bAb|bBa A::=x B::=x 可选项有:a、LR(1)文法 b、LALR(1)文法 c、都不是 d、a 和 b 17、编译过程中,比较常见的中间语言有___________。 ①波兰表示 ②逆波兰表示 ③三元式 ④四元式 ⑤ 树形表示 可选项有:a、①③④ b、②③④ c、③④①⑤ d、②③④⑤ 18、-a-(b*c/(c-d)+(-b)*a)的逆波兰表示是___________。 a、abc*cd-b-a*+/-b、a-bc*cd-b-a*+/c、a-bc*cd-/b-a*+d、a-bc*/cd-b-a*+19、在编译程序中安排中间代码生成的目的是_______________。 ①便于进行存储空间的组织
2

②利于目标代码优化 ③利于编译程序的移植 ④利于目标代码的移植 ⑤利于提高目标代码的质量 可选项有: a、②④ b、①②③ c、③④① d、②③④⑤ 20、代码优化的主要目标是_____________。 ①如何提高目标程序的运行速度 ②如何减少目标程序运行所需的空间。 ③如何协调①和② ④如何使生成的目标代码尽可能简短 可选项有: a、②④ b、①②③ c、③④① d、②③④ 二、简答题: (每小题 5 分,共 30 分) 1、 证明下面文法是二义性的。P::=PaP|PbP|cP|Pe|f 2、设一文法 S→AB S→c A→bA A→a B→aSb B→c 对于句子 bbaacb 写出其全部短语,直接短语和句柄。 3、求出下列文法所产生语言对应的正规式。 S::=aA A::=bA|aB|b B::=aA 4、表达式(a+b)*c/d-e*f 分别表示三元式、四元式、逆波兰式序列 5、消除下列文法的左递归。 E::=T|EAT T::=F|TMF F::=(E)|i A::=+|- M::=*// 6、给出与下图的 NFA 等价的正规式。 b a S0 S1 S3 ε
S2

ε

c 三、问答题: 1、已知文法 G S::=aBc|bAB A::=aAb|b B::=b|ε 构造预测分析表并给出输入串 baabbb 分析过程。 (10 分) 2、 正规式( (0*|1) (1*0) )* (10 分) (1) 构造该正规式所对应的 NFA(画出状态转换图) 。 (2) 将所求的 NFA 确定化。 (画出确定化的状态转换图) 。 3、 若有文法 G(S)的产生式如下:S::=bASB|bA A::=dSa|b B::=cAa|c 构造识别
3

所有项目集规范族的 DFA。 (15 分) (1) 判断该文法是否是 LR(0)文法,说明理由。 (2) 判断该文法是否是 SLR(1)文法,说明理由。 (3) 判断该文法是否是 LR(1)文法,说明理由。 (4) 判断该文法是否是 LALR(1)文法,说明理由。 4、 设已给文法 G: E::=E+T E::=T T::=T*F T::=F F::=(E) 构造此文法的算符优先矩阵。 (15 分) <编译原理> 编译原理>

F::=i

一选择题 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.正规式 MI 和 M2 等价是指____。 a. MI 和 M2 的状态数相等 b.Ml 和 M2 的有向弧条数相等。 C.M1 和 M2 所识别的语言集相等 d. Ml 和 M2 状态数和有向弧条数相等 7.中间代码生成时所依据的是—。 a.语法规则 b.词法规则 c.语义规则 d.等价变换规则 8.后缀式 ab+cd+/可用表达式___来表示。 a. a+b/c+d b. (a+b)/(c+d) c. a+b/(c+d) d. a+b+c/d 9.程序所需的数据空间在程序运行前就可确定,称为______管理技术。 a.动态存储 b.栈式存储 c.静态存储 d.堆式存储 10.堆式动态分配申请和释放存储空间遵守________原则。 a.先请先放 b.先请后放 c.后请先放 d.任意 二(每小题 10 分,共 80 分)简答题 1.画出编译程序的总体结构图,简述各部分的主要功能。
4

2. 已知文法 G[E]: E→ET+|T T→TF* | F F→F^ | a 试证:FF^^*是文法的句型,指出该句型的短语、简单短语和句柄. 3.为正规式(a|b) *a(a|b)构造一个确定的有限自动机。 4. 设文法 G(S): S→(L)|a S|a L→L,S|S (1) 消除左递归和回溯; (2) 计算每个非终结符的 FIRST 和 FOLLOW; (3) 构造预测分析表。 5.已知文法 A->aAd| aAb|ε 判断该文法是否 SLR(1)文法,若是构造相应分析表,并对输入串 ab#给出分析过程。 6. 构造算符文法 G[H]的算符优先关系(含#) 。 G[H]:H→H;M|M M→d|aHb 7.已构造出文法 G(S) (1)S BB (2)B aB (3)B b 1) 。给出 DFA 图 2).给出 LR 分析表 3) .假定输入串为 abaab,请给出 LR 分析过程(即状态,符号,输入串的变化过程) 。 8. 将下面的语句翻译成四元式序列: while A<C∧B<D do if A=1 then C:=C+l else while A≤ D do A:=A+2; 9. 对下面的流图, (1)求出流图中各结点 N 的必经结点集 D(n), (2)求出流图中的回边, (3)求出流图中的循环。

参 考 答 案
一.单项选择题 1. 将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选 b。 2. .构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选 d。 3. 对编译而言,变量既持有左值又持有右值,故选 c。 4. 编译程序打交道最多的就是各种表格,因此选 d。
5

5. 词法分析器输出的结果是单词的种别编码和自身值,选 C。 6. 正规式 M1 和 M2 所识别的语言集相等,故选 C。 7. 选 c。 8. 选 b。 9. 选 C 10. 堆式动态分配申请和释放存储空间不一定遵守先请后放和后请先放的原则,故选 d 二.简答题 1【解答】 编译程序的总体结构图如图 1.2 所示。 词法分析器:输入源程序,进行词法分析,输出单词符号。 语法分析器:在词法分析的基础上,根据语言的语法规则(文法规则)把单词符号 串分解成各类语法单位,并判断输入串是否构成语法上正确的“程序”。 中间代码生成器:按照语义规则把语法分析器归约(或推导)出的语法单位翻译成 一定形式的中间代码,比如说四元式。 优化:对中间代码进行优化处理。 目标代码生成器:把中间代码翻译成目标语言程序。 表格管理模块保存一系列的表格,登记源程序的各类信息和编译各阶段的进展情况。 编译程序各阶段所产生的中间结果都记录在表格中,所需信息多数都需从表格中获取, 整个编译过程都在不断地和表格打交道。 出错处理程序对出现在源程序中的错误进行处理。此外,编译的各阶段都可能出现 错误,出错处理程序对发现的错误都及时进行处理。 2. 【解答】该句型对应的语法树如下:该句型相对于 E 的短语有 FF^^*;相对于 T 的短语 有 FF^^*,F;相对于 F 的短语有 F^;F^^;简单短语有 F;F^;句柄为 F. 3. 【解答】最简 DFA 如图 2.66 所示。 4. 【解答】(1) S→(L)|aS’ S’→S|ε L→SL’ L’→SL’|ε 评分细则:消除左递归 2 分,提公共因子 2 分。 (2) FIRST 和 FOLLOW FIRST)S)={(,a} FOLLOW(S)={#,,)} , FIRST(S’)={,a,ε} FOLLOW(S’)={#,,)} , FIRST(L)={(,a} FOLLOW(L)={ )} FIRST(L’)={, ,ε} FOLLOW(L’〕={ )} 5. 【解答】 (1)拓广文法 (0)S->A (1) A->aAd (2)A-> aAb (3)A->ε (2)构造识别活前缀的 DFA FOLLOW(A)={d,b,#} 对于状态 I0:FOLLOW(A)∩{a}=Ф 对于状态 I1:FOLLOW(A)∩{a}=Ф 因为,在 DFA 中无冲突的现象,所以该文法是 SLR(1)文法。
6

(3)SLR(1)分析表 状态 ACTION a B d 0 S2 r3 1 2 S2 r3 3 S5 4 r1 5 r2 (4)串 ab#的分析过程 步骤 状态栈 符号栈 1 0 # 2 02 #a 3 023 #aA 4 0235 #aAb 5 01 #A

GOTO # r3

A r3 acc r3 r1 r2 1 3

r3 S4 r1 r2

当前字符 a b b # #

剩余字符串 b# # #

动作 移进 归约 A->ε 移进 归约 A-> aAb 接受

6. 【解答】 由 M→d 和 M→a…得:FIRSTVT(M)={d,a} ; 由 H-H;…得:FIRSTVT(H)={; } 由 H→M 得:FIRSTVT(M) cFIRSTVT(H),即 FIRSTVT(H)={;,d,a} 由 M→d 和 M→…b 得:LASTVT(M)={d,b}; 由 H---, 得:LASTVT(H)={;; ;m } 由 H→M 得:LASTVT(M)cLASTVT(H) ,即 LASTVT(H)={;,d,b} 对文法开始符 H,有#H#存在,即有#=#,#<FIRSTVT(H),LASTVT(H)>#,也即#<; , #<d. #<a,;>#,d>#, b>#。 对形如 P→…ab…,或 P→…aQb…,有 a=b,由 M→a|b 得:a=b; 对形如 P→…aR…, b∈FIRSTVT(R), a<b, 而 有 对形如 P→…Rb…, a∈LASTVT(R). 而 有 a>b。 由 H→…;M 得: ;<FIRSTVT(M),即: :<d, :<a 由 M→aH…得:a<FIRSTVT(H),即:a<; ,a<d,a<a 由 H→H;’’?得:LASTVT(H)>;,即: ;>; ,d>; ,b>; 由 M→…Hb 得:LASTVT(H)>b,即: ;>b,d>b,b>b 由此得到算符优先关系表,见表 3.5。 7. 【解答】 (1)LR 分析表如下: (2)分析表 状态 ACTION GOTO
7

a b # S B 0 s3 s4 1 2 1 acc 2 S3 S4 5 3 s3 s4 6 4 r3 r3 5 R1 R1 r1 6 R2 R2 R2 (3) 句子 abaab 的分析过程 表:句子 abaab 的分析过程 步骤 状态 符号栈 输入串 所得产生式 0 #0 # abaad# 1 #03 #a baad# 2 #034 #ab aab# B→b 3 #036 #aB aab# B→aB 4 #02 #B aab# 5 #023 #Ba ab# 6 #0233 #Baa b# 7 #02334 #Baab # 8 #02336 #BaaB # 9 #0236 #BaB ad# 10 #025 #BB ad# 11 #01 #S d# 12 # # d# 13 识别成功 8. 【解答】 该语句的四元式序列如下(其中 E1、E2 和 E3 分别对应:A<C∧B<D, A=1 和 A≤D 并且关 系运算符优先级高) : 100 (j<,A,C,102) 101(j,_,_,113) /*E1 为 F*/ 102 (j<,B,D,104) /*El 为 T*/ 103 (j,_,_,113) /*El 为 F*/ 104 (j=,A,1,106) /*Ez 为 T*/ 105 (j,_,_,108) /*EZ 为 F*/ 106 (+,C,1,C) /*C:=C+1*/ 107 (j,_,_,112) /*跳过 else 后的语句*/ 108 (j≤,A,D,110) /*E3 为 T*/ 109 (j,_,_,112) /*E3 为 F*/ 110 (+,A,2,A) /*A:=A+2*/
8

111 (j,_,_,108) 处*/ 112(j,_,_,100) 处*/ 113

/*转回内层 while 语句开始 /*转回外层 while 语句开始

9. 【解答】 (1)流图中各结点 N 的必经结点集 D(n), D(l)={1},D(2)={1,2},D(3)={1,2,3},D(4)={1,2,3,4},D(5)={1,2,5}, D(6)={1,2,5,6} (2)求出流图中的回边, 5->2,4->3 (3)求出流图中的循环: 回边 5->2 对应的循环:2、5、3、4; 回边 4->3 对应的循环:3、4

编译原理试题( 编译原理试题(A)
一 简答题(60 分) 1. 编译程序按功能分为哪几个阶段?各个阶段的主要功能? 六个阶段: 词法分析,语法分析,语义分析,中间代码生成,中间代码优化和目标代 码生成。 各阶段的主要功能: 词法分析: 检查词法错误并把源程序中的单词转换成一种内部形式(数据形式); 语法分析: 检查源程序的语法错误,当发现错误时输出一些信息,并尽可能的继 续检查; 中间代码生成: 生成源程序的一种便于优化和便于产生目标代码的内部表示; 中间代码优化: 进行不依赖于目标机的优化,以产生高质量目标代码; 目标代码生成: 根据目标机特点从中间代码产生高质量目标代码。 2. 实现高级语言程序的途径有哪几种?它们之间的区别? 途径有两种: 解释器和编译器; 解释器是源程序的一个执行系统, 而编译器是源 程序的一个转换系统;解释器直接由源程序得到运行结果,而编 译器是生成等价于源程序的某种目标机程序。 3. 给出描述非 0 数字作为开始符的奇数字符串的正则表达式或正则式。 S Head Body Tail | Tail Head 1|2|3|4|5|6|7|8|9 Body Body D | D D 0|1|2|3|4|5|6|7|8|9|λ Tail 1|3|5|7|9 n n 4. 判断字符串 a b (n >0)是否可用确定自动机识别?如果能,则画出自动机,否则说
9

明原因 anbn ( n>0 )不能用确定自动机识别,因为确定自动机只有有限个状态,而 a,b 的个数是不定的(也可以是无限的), 而要识别的话需要每扫描一个 a 或 b 都要产生一 个新的状态,所以无法识别。 5. 对如下文法: G[S] : S a b S | a a B | a d B bbB|b 分别给出句子 abaabbb 和 ad 的句柄 句子 ad 的语法分析树为: S

a

d

句子 abaabbb 的语法分析树为: S

a

b

S a b B b B

a

b 所以句子 abaabbb 的句柄是 b;句子 ad 的句柄是 ad . 6. 有如下文法,给出每个产生式的 Predict 集。 P begin S end S id := E ; S | λ E n | id Follow( S ) ={ end } Predict( P begin S end ) = { begin } Predict( S id := E ; S ) = { id } Predict ( S Predict ( E λ ) = { end } n)={n}
10

Predict ( E id )= { id } 7. 什么是可规约活前缀?举一例说明。 若活前缀是含句柄的活前缀,即有 α =α′π ,且 π 是句柄,则活前缀 α 为可归约 活前缀。 例S a|bCd C e 则 be 为一个可归约活前缀 8. 通过合并 LR(1)文法中的同心状态得到的 LALR(1)文法可能会产生哪些冲突?一 定不会产生哪些冲突? 可能引入归约—归约冲突,不会产生移入—归约冲突。 9. 设对偶表(L,N)分别表示程序在当前位置的层数和偏移量,确定下面程序段中括 号部分的内容。假设系统规定整型(int)变量占 1 个单元,实型(real)变量占 2 个单元。 (L, N) Type at = array of [1..10] of int; ( ) var x :real; ( ) function f ( ( ?,M) var a: at, ( ) b: at, ( ) var x: real ) : int ① ( L , N ) ② ( L , N+2 ) ③ ( L+1 , M+1 ) ④ ( L+1,M+11) 10. 给出活动记录空间结构?并给出各部分的存储对象? 活动记录的空间结构: 临时变量区 局部变量区 形参变量区 返回值 全局变量环境 机器状态 过程层数 返回地址 动态链指针 11. 有如下文法: G[S]: S L 控制状态信息
全局变量信息 机器状态信息

本层变量和返回值

(L) |a SP

P ,SP|λ 给出该文法的动作文法打印每个 a 的嵌套深度。例如(a, , )打印 1,2,2。 (a)(a)
11

动作文法: G: S L

<#init> ( <inc> L ) <dec> | a <out> SP

P SP| λ <init> : i :=0; <inc> : i := i+1; <dec>: i := i -1; <out>: print(“%d”,i); 12. 文法可分为几类;各举一例。 文法分为四类:0 型(短语文法),1 型(上下文有关),2 型(上下文无关),3 型 (正则)文法。 0 型:S abC | c, bC d; 1 型:S abC , bC ad; 2 型:S abC, C bd; 3 型:S a | bC , C d; 13. Display 表的作用? Display 表用来表示变量访问环境,对于每一个 AR,求出其变量访问环境,并把 它以地址表的形式(Display 表)保存在 AR 中,这样通过查询 Display 表就可以找到变量。 14. 如下是当前执行某个过程时的活动记录,设变量 x 的层数和偏移量分别为 L 和 Off, 说明如何访问变量 x。

sp ... ... ... .... D sp Addr(x) = [sp+D+L]+Off 15. 当实参为变量,形参分别为变参和值参时,传参的区别。 形参为变参时,AR 中保存实参变量的地址,改变形参即改变实参变量; 形参为值参时,AR 中保存形参变量,其初始值为实参的值,此后形参与实 参没有联系。 二、 (10 分)说明如下文法是否是 LL(1)文法,若不是,将其转换为 LL(1)文法。最 后给出该文法的 LL(1)分析表。 G[A]: A B e B Bb|a 文法中有左递归,不是 LL(1)文法。
12

局部 Display 表

转换为 G′ : A B e B a B′ B′ b B′ | λ Predict(A B e) ={ a } Predict(B a B′) ={ a } Predict(B′ b B′) ={ b } Predict(B′ λ ) ={ e } LL(1)分析表: a A B B′ Be a B′ b B′ λ b e

三、 (15 分)判断如下文法是否是 LR(1)文法,若不是,说明理由,是则画出它的 LR 状态图,并给出它的 LR(1)分析表。 G[S]: S a | b | (T) T TeS | S 是 LR(1)文法,状态图如下:

13

(1): S a (4): T TeS (2): S b (5):T S (3): S (T) LR(1)分析表: a 0 1 2 3 4 S6 S7 S8
14

b S3

e

( S4

)

S 1

T

# Acc R1 R2

S2

5

10

5 6 7 8 9 10 S6 11 S7 S6 S7

R5 R1 R2 S8 S11 S11 S8

R5 R1 R2 5 S13 S12 14 R3 9

12 R3 13 R4 14 四、 (15 分)给出如下程序段的中间代码,并将其优化为最简代码形式。(中间代码的操 作符可用自身代替)。其中 A:Array of [1..10] of Array [1..10] of integer,整型变量占 1 个 存储单元。 z := 3; while j< 10 do begin j := x +1; x := x+1 ; m: = x+1; if x <10 then y:= A[i][j]+m else y:= A[i][j]-m n := z + 10; end 中间代码: (1) (: = , 3 , z ) (2) ( LABLE,L1) (3) ( LT, j , 10 , t1) (4) (JUMP0,L2) (5) ( + , x , 1 ,t2 ) (6) ( : = , t2 , j ) (7) ( + , x , 1 ,t3 ) (8) ( : = , t3 , x )
15

R3 R4

(9) ( + , x , 1 , t4 ) (10) ( : = , t4 ,m ) (11) ( LT , x ,10 , t5) (12) ( JUMP0, L3) (13) ( - , i ,1 , t6 ) (14) ( * , t6, 10 , t7) (15) ( - , j , 1 ,t8) (16) ( + , t7 , t8 ,t9) (17) (* , t9 , 1, t10) (18) ( [], A ,t10 , t11) (19) (+, t11,m ,t12) (20) ( : = , t12 , y ) (21) (JUMP, L4) (22) (LABLE, L3) (23) ( - , i , 1 ,t13 ) (24) ( * ,t13 ,10 , t14 ) (25) ( - , j , 1 , t15 ) (26) ( + , t14 , t15 , t16) (27) (* , t16 , 1 ,t17 ) (28) ( [], A , t17 , t18 ) (29) ( - , t18 , m ,t19 ) (30) (LABLE , L4) (31) ( + , z , 10, t20 ) (32) ( : = , t20, n) (33) ( JUMP, L1 ) (34) ( LABLE, L2 ) 优化后的中间代码: (1) (: = , 3 , z ) (2) ( LABLE,L1) (3) ( LT, j , 10 , t1) (4) (JUMP0,L2) (5) ( + , x , 1 ,t2 ) (6) ( : = , t2 , j ) (7) ( : = , t2 , x ) (8) ( + , x , 1 , t3 ) (9) ( : = , t3 ,m ) (10) ( - , i ,1 , t4 ) (11) ( * , t4 , 10 , t5) (12) ( - , j , 1 ,t6)
16

(13) ( + , t5 , t6, t7 ) (14) (* , t7 , 1, t8 ) (15) ( [], A ,t8 , t9 ) (16) ( LT , x ,10 , t10) (17) ( JUMP0, L3) (18) (+, t9,m ,t11 ) (19) ( : = , t11 , y ) (20) (JUMP, L4) (21) (LABLE, L3) (22) ( - , t9 , m ,t12 ) (23) ( LABLE , L4 ) (24) ( + ,z , 10 ,t13) (25) ( : = , t13 , n) (26) ( JUMP, L1 ) (27) ( LABLE, L2 )

《编译原理》
一、(5×6 分)回答下列问题: 1.什么是 S-属性文法?什么是 L-属性文法?它们之间有什么关系? 2.什么是句柄?什么是素短语? 3.划分程序的基本块时,确定基本块的入口语句的条件是什么? 4.运行时的 DISPLAY 表的内容是什么?它的作用是什么? 5.对下列四元式序列生成目标代码: A:=B*C D:=E+F G:=A+D H:=G*2 其中,H 是基本块出口的活跃变量, R0 和 R1 是可用寄存器 二、 分)设Σ={0, (8 1}上的正规集 S 由倒数第二个字符为 1 的所有字符串组成, 请给出该字集对应的正规式,并构造一个识别该正规集的 DFA。 三、(6 分)写一个文法使其语言为 L(G)={ anbmambn | m,n≥1}。 四、(8 分)对于文法 G(E): E→T|E+T T→F|T*F F→(E)|i 1. 写出句型(T*F+i)的最右推导并画出语法树。
17

2. 写出上述句型的短语,直接短语、句柄和素短语。 五、(12 分)设文法 G(S):
S → SiA | A A → A+B|B B →) A* | ( 1.构造各非终结符的 FIRSTVT 和 LASTVT 集合; 2.构造优先关系表和优先函数。

六、(9 分)设某语言的 do-while 语句的语法形式为 S → do S(1) While E 其语义解释为:
S(1)的代码 E的代码

真 假

针对自下而上的语法分析器,按如下要求构造该语句的翻译模式: (1) 写出适合语法制导翻译的产生式; (2) 写出每个产生式对应的语义动作。 七、(8 分)将语句 if (A<X) ∧ (B>0) then 式。 八、(10 分) 设有基本块如下: T1:=S+R T2:= 3 T3:= 12/T2 T4:=S/R A:=T1-T4 T5:=S+R B:=T5 T6:=T5*T3 B:=T6 (1)画出 DAG 图; (2)设 A,B 是出基本块后的活跃变量,请给出优化后的四元式序列。
18

while C>0 do C:=C+D; 翻译成四元

九、(9 分) 设已构造出文法 G(S): (2) B → aB (1) S → BB 的 LR 分析表如下 ACTION b s4 s7 s4 r3

(3) B→ b

GOTO # acc S 1 B 2 5 8 r1

状态 0 1 2 3 4 5 6 7 8 9

a s3 s6 s3 r3 s6 r2

s7 r3 r2 r2

9

假定输入串为 abab,请给出 LR 分析过程(即按照步骤给出状态,符号,输入 串的变化过程)。

《编译原理》
一、回答下列问题:(30 分) 1.什么是 S-属性文法?什么是 L-属性文法?它们之间有什么关系? 解答: S-属性文法是只含有综合属性的属性文法。 (2 分) L-属性文法要求对于每个产生式A X1X2…Xn,其每个语义规则中的每个属 性或者是综合属性,或者是Xj的一个继承属性,且该属性仅依赖于: (1) 产生式Xj的左边符号X1,X2…Xj-1的属性; (2) A的继承属性。 (2分) S-属性文法是 L-属性文法的特例。 (2 分) 2.什么是句柄?什么是素短语? 一个句型的最左直接短语称为该句型的句柄。 (3 分)素短语是这样的一个短 语,它至少包含一个终结符并且不包含更小的素短语。 分) (3 3.划分程序的基本块时,确定基本块的入口语句的条件是什么? 解答: (1)程序第一个语句,或 (2)能由条件转移语句或无条件转移语句转移到的语句,或
19

(3)紧跟在条件转移语句后面的语句。 4.(6 分)运行时的 DISPLAY 表的内容是什么?它的作用是什么? 答:DISPLAY 表是嵌套层次显示表。每当进入一个过程后,在建立它的活动 记录区的同时建立一张嵌套层次显示表 diaplay.假定现在进入的过程层次 为 i,则它的 diaplay 表含有 i+1 个单元,自顶向下每个单元依次存放着现 行层、直接外层、…、直至最外层(主程序,0 层)等每层过程的最新活动记录 的起始地址。通过 DISPLAY 表可以访问其外层过程的变量。 5.(6 分)对下列四元式序列生成目标代码: A:=B*C D:=E+F G:=A+D H:=G*2 其中,H 是基本块出口的活跃变量, R0 和 R1 是可用寄存器 答: LD R0, B MUL R0, C LD R1, E ADD R1, F ADD R0, R1 MUL R0, 2 ST R0, H 二、设Σ={0,1}上的正规集 S 由倒数第二个字符为 1 的所有字符串组成,请 给出该字集对应的正规式,并构造一个识别该正规集的 DFA。(8 分) 答: 构造相应的正规式:(0|1)*1(0|1) (3 分) NFA: (2 分) 1 1
0

ε

ε

1

ε

ε

2

1

3

4

0 确定化:(3 分) I {0,1,2} {1,2} I0 {1,2} {1,2}
20

0

I1
{1,2,3} {1,2,3}

{1,2,3} {1,2,4} {1,2,3,4}

{1,2,4} {1,2} {1,2,4} 0

{1,2,3,4} {1,2,3} {1,2,3,4}

1 0
0 1

1
2

0
3

0
4

0 1

1 1

三、写一个文法使其语言为 L(G)={ anbmambn | m,n≥1}。(6 分) 答:文法 G(S): S → aSb | B B → bBa | ba
四、对于文法 G(E): (8 分)

E→T|E+T T→F|T*F F→(E)|i 1. 写出句型(T*F+i)的最右推导并画出语法树。 2. 写出上述句型的短语,直接短语、句柄和素短语。 答: 1. (4 分) E?T?F?(E) ?(E+T) ?(E+F) ?(E+i) ?(T+i) ?(T*F+i) 2. (4 分) 短语:(T*F+i), T*F+i, 直接短语:T*F, i 句柄:T*F 素短语:T*F, i
五、设文法 G(S):(12 分)

E

T

F

T*F,

i
( E )

E

+

T

S → SiA | A A → A+B|B B →) A* | (
21

T

F

T

*

F

i

3.构造各非终结符的 FIRSTVT 和 LASTVT 集合; 4.构造优先关系表和优先函数。(12 分) 答:(6 分) FIRSTVT(S)={ i,+,),( } FIRSTVT(A)={ +,),( } FIRSTVT(B)={ ),( } LASTVT(S)={ i,+,*,( } LASTVT(A)={ +,*,( } LASTVT(B)={ *,( } 优先关系表: (3 分) i i > + > ( > ) * > 优先函数: (3 分) i f 2 g 1 S → do

+ < > > < >

( < < <

) < < <

* > > >

+ 6 4

( 6 6

) 1 6

* 6 1

六、设某语言的 do-while 语句的语法形式为 (9 分) S(1) While E 其语义解释为: S(1)的代码 E的代码

真 假

针对自下而上的语法分析器,按如下要求构造该语句的翻译模式: (1) 写出适合语法制导翻译的产生式; (2) 写出每个产生式对应的语义动作。
22

答:(1). 适合语法制导翻译的文法(3 分) G(S): R→ do U→R S→U S(1) While E

(2). (6 分) R→ do { U→R { R.QUAD:=NXQ S
(1)

}

While

U.QUAD:=R.QUAD; BACKPATCH(S.CHAIN, NXQ) }

S→U E { 答案二: (1) S → do M →ε (2) M1 S(1) While M2 E (6 分) M2 E (3 分) M1 S(1) While BACKPATCH(E.TC, U.QUAD); S.CHAIN:=E.FC }

M →ε { M.QUAD := NXQ } S → do {

BACKPATCH(S(1).CHAIN, M2.QUAD); BACKPATCH(E.TC, M1.QUAD); S.CHAIN:=E. FC } 七、(8 分)将语句 if (A<X) ∧ (B>0) then while C>0 do C:=C+D 翻译成四元式。(8 分) 答: 100 (j<, A, X, 102) 101 (j, -, -, 109) 102 (j>, B, 0, 104)
23

103 (j, -, -, 109) 104 (j>, C, 0, 106) 105 (j, -, -, 109) 106 (+, C, D, T1) 107 (:=, T1, -, C) 108 (j, -, -, 104) 109 (控制结构 3 分,其他 5 分)
八、(10 分) 设有基本块如下:

T1:=S+R T2:= 3 T3:= 12/T2 T4:=S/R A:=T1-T4 T5:=S+R B:=T5 T6:=T5*T3 B:=T6 (1)画出 DAG 图; (2)设 A,B 是出基本块后的活跃变量, 请给出优化后 的四元式序列。 答:(1) DAG 如右图:(6 分) n7 A
_

n8 *

T6,B

n3 T1,T5, B + n1 S /

n6

T4

n2 R

n4 T2 3

n5 4

T3

(2) 四元式序列:(4 分) T1:=S+R T4:=S/R A:=T1-T4 B:=T1*4
九、(9 分) 设已构造出文法 G(S):
24

(1) S → BB (2) B → aB (3) B→ b 的 LR 分析表如下
ACTION 状态 0 1 2 3 4 5 6 7 8 9 r2 r2 r2 s6 s7 r3 s6 s3 r3 s7 s4 r3 r1 9 a s3 b s4 acc 5 8 # S 1 GOTO B 2

假定输入串为 abab,请给出 LR 分析过程(即按照步骤给出状态,符号,输入 串的变化过程)。 答: 步骤 状态 符号 输入串 0 0 # abab# 1 03 #a bab# 2 034 #ab ab# 3 038 #aB ab# 4 02 #B ab# 5 026 #Ba b# 6 0267 #Bab # 7 0269 #BaB # 8 025 #BB # 9 01 #S # acc

编译原理试题
1. 分) (20 写出字母表Σ = {a, b}上语言 L = {w | w 的最后两个字母是 aa 或 bb} 的正规式,并画出接受该语言的最简 DFA。 2. (15 分) 说明下面的文法不是 SLR(1)文法, 并重写一个等价的 SLR(1)文法。 S→Ma|bMc|dc|bda
25

M→d 3. (10 分)为下面的语言写一个无二义的文法: ML 语言中用分号分隔语句的语句块,例如: ( (s ; s ) ; ( s ; s ; s ) ; s ) ; ( s ; s ) 4. (20 分)考虑一个类 Pascal 的语言,其中所有的变量都是整型(不需要显 式声明) ,并且仅包含赋值语句、读语句、写语句,条件语句和循环语句。下 面的产生式定义了该语言的语法(其中 lit 表示整型常量;OP 的产生式没有给 出,因为它和下面讨论的问题无关) 。 定义 Stmt 的两个属性:MayDef 表示它可能定值的变量集合,MayUse 表 示它可能引用的变量集合。 (1)写一个语法制导定义或翻译方案,它计算 Stmt 的 MayDef 和 MayUse 属性。 (2) 基于 MayDef 和 MayUse 属性, 说明 Stmt1;Stmt2 和 Stmt2;Stmt1 在什么 情况下有同样的语义。 Program → Stmt Stmt → id := Exp Stmt → read (id ) Stmt → write ( Exp ) Stmt → Stmt ; Stmt Stmt → if ( Exp ) then begin Stmt end else begin Stmt end Stmt → while ( Exp ) do begin Stmt end Exp → id Exp → lit Exp → Exp OP Exp 5. (10 分)下面是一个 C 语言程序: main() { long i; long a[0][4]; long j; i = 4; j = 8; printf(“%d, %d\n”, sizeof(a), a[0][0]); } 虽然出现 long a[0][4]这样的声明, X86/Linux 机器上该程序还是能通过编译 在 并生成目标代码。请回答下面两个问题: (1)sizeof(a)的值是多少,请说明理由。 (2)a[0][0]的值是多少,请说明理由。 6. (15 分)考虑下面的三地址语句序列: b := 1
26

b := 2 if w <= x goto L2 e := b goto L2 L1: goto L3 L2: c := 3 b := 4 c := 6 L3: if y <= z goto L4 goto L5 L4: g := g + 1 h := 8 goto L1 L5: h := 9 (1)在该代码中用水平的横线将代码分成基本块,并给每个基本块一个 序号。 (2)画出该代码的控制流图,每个基本块就用(1)的序号表示。 (3)若有循环的话,列出构成每个循环的结点。 7. 分)如果 (5 (1)用编译命令 cc test.c 会报告有未定义的符号; (2)用编译命令 cc test.c –lusr.a 会得到可执行程序(–lusr.a 表示连接库 libusr.a) 。 那么,用编译命令 cc test.c –lusr.a –lusr.a 是否会报告有多重定义的符号? 请说明理由。 8. 分)C++中的对象声明语句应如何翻译成 C 语句?如书上图 11.11 程序 (5 中的 Point _center; 应翻译成什么?

编译原理复习题
1. 设 G=(VN,VT,P,<S>)是上下文无关文法,产生式集合 P 中任意一个产生式应具有 什么样的形式?若 G 是正则文法呢?

答:一般形式为<v>→α,<v>∈VN,α∈(VN∪VT)*。 若 G 是正则文法,则一般形式为<A>→a<B>或<A>→a,<A>、<B>∈VN,a∈VT(或<A>→ <B>a,<A>→a) 。
2. 何谓二义性文法?试举一例说明。

答:若文法 G 的一个句子对应有两棵或两棵以上不同的推导树,则称该句子是二义性的。 产生二义性句子的文法称为二义性文法,否则该文法是无二义性的。
27

例子:给定文法 G[<R>]: <R>→<R>*|<R><R>|a|b 考察句子 ab*,它有两棵不同的推导树,如下所示:
<R> <R> a <R> b * <R> a <R> b <R> <R> <R> *

3. 试正确消除下述传递图的ε弧,使其接收的语言不变。

A ε
1

0

C 1 D ε, 0

E 1 1

ε G 1

+

S-

ε ε 0 B

F 1

答:
C 1 S 0 + 1 D 0,1 F 1 0 1 1 1 1 1 G + E +

4. 试将下述程序段翻译成三地址形式的中间代码表示。 ①5+6 ×(a + b); 答:: 100: t1:=a+b 101: t2:=6*t1 102: t3:=5+t2 ②?A∨(B ∧(C ∨ D) );
28

答: 200: if A goto 202 201: goto T 202: if B goto 204 203: goto F 204: if C goto T 205: goto 206 206: if D goto T 207: goto F ③for j:=1 to 10 do a[j + j]:=0; 答:300: j:=1 301: if j10 goto NEXT 302: i:=j+j 303: a[i]:=0 304: goto 301 ④while ( a+b<c OR a=b ) while ( a<5 AND b<10 ) { a=a+1; b=b+1; } 答:三地址代码如下: 100: t:=a+b 101: if t<c goto 105 102: goto 103 103: if a=b goto 105 104: goto 0 105: if a<5 goto 107 106: goto 100 107: if b<10 goto 109 108: goto 100 109: a:=a+1 110: b:=b+1 111: goto 105 112: ⑤if x > y then x:=10 else x:= x + y; 答:400: if xy goto 402 401: goto 404 402: x:=10 403: goto 405 404: x:=x+y
29

405: 5. 试判定下述文法 G[<S>]是否是 LR(1)文法?为什么? <S>→<A><A> <A>→<A>a <A>→a 答:1)因为对文法 G[<S>]存在的句子 aaa,有两棵不同的推导树,如图 4.5 所示。
<S> <A> <A> a a <A> a <A> a <S> <A> <A> a a

图 4.5 两棵不同的推导树 所以该文法是二义性文法,G[<S>]不是 LR(1)文法。 2)可构造文法 G[<S>]的状态集,考虑增广文法 G[<S’>],如表 4.29 所示。 表 4.29 文法 G[<S’>]的 LR(1)状态集 状 态 T 项 目 集 [<S’>→·<S>⊥,∧] 0 [<S>→·<A><A>,⊥] [<A>→·<A>a,a] [<A>→·a,a] 1 [<S’>→<S>·⊥,∧] [<S>→<A>·<A>,⊥] 2 [<A>→<A>·a,a] [<A>→·<A>a,a /⊥] [<A>→·a, a /⊥] 3 4 [<A>→a·,a] [<A>→<A>a·,a] [<A>→a·,a /⊥] 输入符号 <S> <A> <A> a ⊥ <A> a <A> a a a a /⊥ 4 #3 #2 #3 4 下一状态 1 2 2 3 Accept

到此不用继续计算,因为状态 T4 是不适定状态,对输入符 a 出现了“归约—归约”冲突, 因此文法 G[<S>]不是 LR(1)文法。 6. 对给定正则表达式 b*(d | ad) | ab) 构造其 NFA M。 (b 答:
+

30

7. 证明下面文法是 SLR(1)文法,并构造其 SLR 分析表。 E→E + T | T T→T F | F F→F* | a | b 答:分析表如下所示: 状 态 T * 项 目 集 E’→· E⊥ E→· E+ T E→· T 0 T→· T F T→· F F→· F* F→·a F→·b * 1 * * * 2 E’→ E·⊥ E→ E·+ T E→ T· T→ T· F F→· F* F→·a F→·b * 3 4 5 * * * * 6 T→ F· F→ F·* F→a· F→b· E→ E+· T T→· T F T→· F
31

输入符号 E E T T F F a b ⊥ + ⊥/+ F F a b ⊥/+/a/b *

下一状态 1 1 2 2 3 3 4 5 Accept 6 #2 7 7 4 5 #4 8 #6 #7

T T F

9 9 3

F→· F* F→·a F→·b 7 8 * * * * * 9 T→ T F· F→ F·* F→ F*· E→ E+ T· T→ T· F F→· F* F→·a F→·b 8. 构造下列正则表达式的确定性的有限状态自动机。 aba(a|b)*a 答: b 1 a 2 b 3 a a 4 b a b a b

F

3 4 5 #3 8 #5 #1 7 7 4 5

⊥/+/a/b * ⊥/+ F F

a 5

9. 文法 G[E]的产生式为: E→E + T | T T→T * E | F F→ I |(E) ①给出(I+I)* I 的最左推导、最右推导及相应的推导树; ②列出句型 F + T * F 的所有短语、简单短语和句柄。 答: a)最左推导: E?T?T*E?F*E?(E)*E?(E+T)*E?(T+T)*E ?(F+T)*E?(I+T)*E?(I+F)*E?(I+I)*E?(I+I)*T?(I+I)*F?(I+I)*I 最右推导: E?T?T*E?T*T?T*F?T*I?F*I?(E)*I ?(E+T)*I?(E+F)*I?(E+I)*I?(T+I)*I?(F+I)*I?(I+I)*I 推导树如下:

32

b)所有短语:F(2 个)、T*F、F + T * F 简单短语:F(2 个) 句 柄:F

10. 条件语句可形式定义为: <S> IF <E> THEN <S>1 ELSE <S>2 其中<E>带有属性 1.<E>.type 值为“boolean” 表示<E>是布尔类型 2.<E>.true 和<E>.false 值为<E>中真和假的尚待回填的出口的链首指针 条件语句的语义可描述为: t:=e; if not t then goto L1; <S>1; goto L2; L1: <S>2; L2: 其中 e 为<E>的值。 试用句法制导翻译的方法写出符合上述要求的条件语句的翻译方案。 答:条件语句的属性翻译文法为: <if1>→if<E> { CheckBool(<E>.type); TLT:=NewTL; GEN(LABEL,TLT); Backpatch(<E>.true,TLT); <if1>.false:=<E>.false; } <if2>→<if1> then <S>
1

33

{ <if2>.TL:=NewTL; GEN(BR, <if2>.TL); TLF:=NewTL; GEN(LABEL,TLF); Backpatch(<E>.false,TLF); } <S>→<if2> else <S> { GEN(LABEL,<if2>.TL); }
2

11. 适合采用静态存储分配的程序设计语言应有哪些限制? 答:①数据实体所需空间在编译时能确定 ②运行时每个数据对象只能有一个实例 ③数组的上下界是常量 ④过程调用不允许递归 ⑤不能动态建立数据实体 12. 一个基本块内通常可实现哪些优化? 答:①合并已知量 ②删除公共子表达式 ③删除无用代码 ④复写传播

1、编译原理是对(C) 。 A、机器语言的执行 C、高级语言的翻译 2、词法分析器的输出结果是(D) 。 A、单词自身值 C、单词的种别编码 B、汇编语言的翻译 D、高级语言程序的解释执行

B、单词在符号表中的位置 D、单词的种别编码和自身值

3、文法:G:S→xSx | y 所识别的语言是(D) 。 A、xyx B、 (xyx)* C、x*yx*
34

D、x yx (n≥0)

n

n

4、采用自上而下分析,必须(A) 。 A、消除回溯 C、消除右递归

B、消除左递归 D、提取公共左因子

5、有一语法制导翻译如下所示: T→aDa {print “1”} D→(A {print “2”} D→d {print “3”} A→Dd {print “4”} 若输入字符序列为 a((dd)d)d)a,且采用自上而下的分析方法,则输出序列为(B) ( 。 A、32224441 B、34242421 C、12424243 D、34442212

35


推荐相关:

西安电子科技大学考研复试编译原理复习_图文.ppt

西安电子科技大学考研复试编译原理复习 - 《编译原理》复习 西安电子科技大学 软


西安电子科技大学考研复试科目-编译原理8第4章_图文.ppt

西安电子科技大学考研复试科目-编译原理8第4章 - 4.2 语法分析器的构造 语


西安电子科技大学考研复试科目-编译原理7第3章(接)_图文.ppt

西安电子科技大学考研复试科目-编译原理7第3章(接) - 3.5 自下而上语法分


西安电子科技大学考研复试科目-编译原理9第4章(接)_图文.ppt

西安电子科技大学考研复试科目-编译原理9第4章(接) - 4.4 声明语句的翻译


西安电子科技大学编译原理复试第一章 引言_图文.ppt

西安电子科技大学编译原理复试第一章 引言_工学_高等教育_教育专区。西安电子科技大学编译原理复试 编译原理西安电子科技大学 计算理论与技术研究所 王小兵 xbwang@...


西安电子科技大学考研复试科目-编译原理3第2章(接)_图文.ppt

西安电子科技大学考研复试科目-编译原理3第2章(接) - 2.4 从正规式到词法


西安电子科技大学考研复试科目-编译原理9第4章(接)_图文.ppt

西安电子科技大学考研复试科目-编译原理9第4章(接) - 第四章 语法制导翻译生


西安电子科技大学考研复试科目-编译原理6第3章(接)_图文.ppt

西安电子科技大学考研复试科目-编译原理6第3章(接) - 3.4 自上而下语法分


2013西安电子科技大学考研编译原理复习_图文.ppt

2013西安电子科技大学考研编译原理复习 - 《编译原理》复习 西安电子科技大学


西安电子科技大学编译原理总复习-习题与试题-2010_图文.ppt

西安电子科技大学编译原理总复习-习题与试题-2010 - 《编译原理》复习 西安电子科技大学 软件工程研究所 刘坚 课程内容 一、引言 二、词法分析 三、语法分析 四...


西安电子科技大学《编译原理》总复习-习题与试题-2010_....ppt

西安电子科技大学编译原理》总复习-习题与试题-2010_研究生入学考试_高等教育_教育专区。西安电子科技大学计算机考研复试编译原理复习 ...


编译原理课后答案第二版 西安电子科技大学出版社_图文.pdf

编译原理| 出版社| 第二版|编译原理课后答案第二版 西安电子科技大学出版社_工


西安电子科技大学考研复试科目-编译原理13第5章.ppt

西安电子科技大学考研复试科目-编译原理13第5章_工学_高等教育_教育专区。西安


西安电子科技大学考研复试科目-编译原理5第3章_图文.ppt

西安电子科技大学考研复试科目-编译原理5第3章 - 第三章 语法分析 词法分析:


西安电子科技大学考研复试科目-离散数学01命题逻辑a_图文.pdf

西安电子科技大学考研复试科目-离散数学01命题逻辑a_工学_高等教育_教育专区。...操作系统 数据结构 编译原理 算法分析 数字电路 数据库系统 人工智能 4 …… ...


西安电子科技大学编译原理 (12).ppt

西安电子科技大学编译原理 (12)_研究生入学考试_高等教育_教育专区。西安电子科技大学编译原理课件 考研复试参考用 上次课内容 ? 自下而上的分析 归约、短语、...


西安电子科技大学编译原理 (4).ppt

西安电子科技大学编译原理 (4)_研究生入学考试_高等教育_教育专区。西安电子科技大学编译原理课件 考研复试参考用 词法分析部分总结 田聪 1 构造词法分析器的一般...


西安电子科技大学计算机考研编译原理第二章 词法分析_图文.ppt

西安电子科技大学计算机考研编译原理第二章 词法分析_研究生入学考试_高等教育_教育专区。西安电子科技大学计算机考研编译原理课件 第一章 总结源程序 词法分析 ? ?...


西安电子科技大学编译原理 (2).ppt

西安电子科技大学编译原理 (2)_研究生入学考试_高等教育_教育专区。西安电子科技大学编译原理课件 考研复试参考用 上次课内容回顾源程序 ?NFA ?DFA ?等价性符 号...


西安电子科技大学编译原理 (23).ppt

西安电子科技大学编译原理 (23)_研究生入学考试_高等教育_教育专区。西安电子科技大学编译原理课件 考研复试参考用 编译原理西安电子科技大学 计算机学院 田聪 c....

网站首页 | 网站地图
All rights reserved Powered by 酷我资料网 koorio.com
copyright ©right 2014-2019。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com