编译原理习题

合集下载

编译原理习题

编译原理习题

编译原理习题⼀、填空题:1-01.编译程序的⼯作过程⼀般可以划分为词法分析,语法分析,语义分析,之间代码⽣成,代码优化等⼏个基本阶段,同时还会伴有表格处理和出错处理.1-02.若源程序是⽤⾼级语⾔编写的,⽬标程序是机器语⾔程序或汇编程序,则其翻译程序称为编译程序.1-03.编译⽅式与解释⽅式的根本区别在于是否⽣成⽬标代码.1-04.翻译程序是这样⼀种程序,它能够将⽤甲语⾔书写的程序转换成与其等价的⽤⼄语⾔书写的程序. 1-05.对编译程序⽽⾔,输⼊数据是源程序,输出结果是⽬标程序.1-06.如果编译程序⽣成的⽬标程序是机器代码程序,则源程序的执⾏分为两⼤阶段:编译阶段和运⾏阶段.如果编译程序⽣成的⽬标程序是汇编语⾔程序,则源程序的执⾏分为三个阶段:编译阶段,汇编阶段和运⾏阶段.1-07.若源程序是⽤⾼级语⾔编写的,⽬标程序是机器语⾔程序或汇编程序,则其翻译程序称为编译程序。

1-08.⼀个典型的编译程序中,不仅包括词法分析、语法分析、中间代码⽣成、代码优化、⽬标代码⽣成等五个部分,还应包括表格处理和出错处理。

其中,词法分析器⽤于识别单词。

1-09.编译⽅式与解释⽅式的根本区别为是否⽣成⽬标代码。

2-01.所谓最右推导是指:任何⼀步αβ都是对α中最右⾮终结符进⾏替换的。

2-02.⼀个上下⽂⽆关⽂法所含四个组成部分是⼀组终结符号、⼀组⾮终结符号、⼀个开始符号、⼀组产⽣式。

2-03.产⽣式是⽤于定义语法成分的⼀种书写规则。

2-04.设G[S]是给定⽂法,则由⽂法G所定义的语⾔L(G)可描述为:L(G)={x│S x,x∈V T*}。

2-05.设G是⼀个给定的⽂法,S是⽂法的开始符号,如果S x(其中x∈V*),则称x是⽂法的⼀个句型。

2-06.设G是⼀个给定的⽂法,S是⽂法的开始符号,如果S x(其中x∈V T*),则称x是⽂法的⼀个句⼦。

3-01.扫描器的任务是从源程序中识别出⼀个个单词符号。

4-01.语法分析最常⽤的两类⽅法是⾃上⽽下和⾃下⽽上分析法。

编译原理试题及答案

编译原理试题及答案

编译原理试题及答案一、选择题1. 编译器的主要功能是什么?A. 程序设计B. 程序翻译C. 程序调试D. 数据处理答案:B2. 下列哪一项不是编译器的前端处理过程?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,词法分析器的主要作用是什么?A. 识别程序中的关键字和标识符B. 将源代码转换为中间代码C. 检查程序的语法结构D. 确定程序的运行环境答案:A4. 语法分析通常采用哪种方法?A. 自顶向下分析B. 自底向上分析C. 正则表达式匹配D. 直接解释执行答案:B5. 语义分析的主要任务是什么?A. 检查程序的语法结构B. 检查程序的类型安全C. 识别程序中的变量和常量D. 将源代码转换为机器代码答案:B二、简答题1. 简述编译器的工作原理。

答案:编译器的工作原理主要包括以下几个步骤:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。

词法分析器将源代码分解成一系列的词素;语法分析器根据语法规则检查词素序列是否合法;语义分析器检查程序的语义正确性;中间代码生成器将源代码转换为中间代码;代码优化器对中间代码进行优化;最后,目标代码生成器将优化后的中间代码转换为目标机器代码。

2. 什么是词法分析器,它在编译过程中的作用是什么?答案:词法分析器是编译器前端的一个组成部分,负责将源代码分解成一个个的词素(tokens),如关键字、标识符、常量、运算符等。

它在编译过程中的作用是为语法分析器提供输入,是编译过程的基础。

三、论述题1. 论述编译器中的代码优化技术及其重要性。

答案:代码优化是编译过程中的一个重要环节,它旨在提高程序的执行效率,减少资源消耗。

常见的代码优化技术包括:常量折叠、死代码消除、公共子表达式消除、循环不变代码外提、数组边界检查消除等。

代码优化的重要性在于,它可以显著提高程序的运行速度和性能,同时降低程序对内存和处理器资源的需求。

四、计算题1. 给定一个简单的四则运算表达式,请写出其对应的逆波兰表达式。

编译原理习题及答案(整理后)

编译原理习题及答案(整理后)

第一章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、使用可以定义一个程序得意义。

a.语义规则b.语法规则c.产生规则d.词法规则7、词法分析器得输入就是。

a.单词符号串b.源程序c.语法单位d.目标程序8、中间代码生成时所遵循得就是- 。

a.语法规则b.词法规则c.语义规则d.等价变换规则9、编译程序就是对。

a.汇编程序得翻译b.高级语言程序得解释执行c.机器语言得执行d.高级语言得翻译10、语法分析应遵循。

a.语义规则b.语法规则c.构词规则d.等价变换规则二、多项选择题1、编译程序各阶段得工作都涉及到。

a.语法分析b.表格管理c.出错处理d.语义分析e.词法分析2、编译程序工作时,通常有阶段。

a.词法分析b.语法分析c.中间代码生成d.语义检查e.目标代码生成三、填空题1、解释程序与编译程序得区别在于。

2、编译过程通常可分为5个阶段,分别就是、语法分析、代码优化与目标代码生成。

3、编译程序工作过程中,第一段输入就是,最后阶段得输出为程序。

4、编译程序就是指将程序翻译成程序得程序。

单选解答1、将编译程序分成若干个“遍”就是为了使编译程序得结构更加清晰,故选b。

2、构造编译程序应掌握源程序、目标语言及编译方法等三方面得知识,故选d。

3、对编译而言,变量既持有左值又持有右值,故选c。

4、编译程序打交道最多得就就是各种表格,因此选d。

5、目标代码包括汇编指令代码、可重定位指令代码与绝对指令代码3种,因此不就是目标代码得只能选d。

编译原理习题(含历年专业考试题)

编译原理习题(含历年专业考试题)

1. LR 分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错 地点。 () 2. 构造 LR 分析器的任务就是产生 LR 分析表。 () 3 .LR 文法肯定是无二义的,一个无二义文法决不会是 LR 文法。 () 4. 在任何时候,分析栈的活前缀 X1X2...Xm 的有效项目集就是栈顶状态 Sm 所 在的那个 项目集。 () 5 .同心集的合并有可能产生新的“移进”/“归约”冲突。 () 6. 由于 LR(0) 分析表构造简单,所以它的描述能力强、适用面宽; LR(1) 分析 表因构造复杂而描述能力弱、适用面窄。 () 7 .所有 LR 分析器的总控程序都是一样的,只是分析表各有不同。 () 8. LR 分析技术无法适用二义文法。 () 9. 项目 A →β 1 ·β 2 对活前缀αβ 1 是有效的,其条件是存在规范推导 S'*= aAW= a β 1 β 2 ω。 () 10. SLR(1) 文法的特点是:当符号栈中的符号串为βα,而面临的输入符号为α 则存在 把α归约为 A 的规范句型的前缀β A α时,方可把 a 归约为 A 。 ( )
已知文法 G[S] : S → dAB A → aA|a B → Bb| ε (1) 试问 G[S] 是否为正规文法,为什么? (2) G[S] 所产生的语言是什么? (3) G[S] 能否改写为等价的正规文法 ?
答:(1)因为S → dAB不符合正规文法产生式A→aB或A→a, a∈VT* ,A,B∈VN的格式,故G[S]不是正规文法。 (2) G[S]产生的语言为: L={danbm|n≥1,m≥0} (3)可以得到G[S]对应的正规文法G’[S]: S→dA A→aA|aB|a B→bB|ε
编译原理
第一章---第六章补充
例1

编译原理习题

编译原理习题

22
20、3.3.4:用一个正规式描述select,注意:不关心大小写, 如SeleCt也可为本正规式匹配。
(s|S)(e|E)(l|L)(e|E)(c|C)(t|T)
21、练习4.5.2 文法SSS+|SS*|a,指出下面最右句型的句 柄 S 2)SS+a*a+ S S + S S * a
S
6、对_____表进行变动较为困难
A、三元式
B、间接三元式
C、四元式 D、三地址码
2
7、P202练习5.2.3.有产生式A→BCD,其中四个文法符号均 有两个属性,s为综合属性,i为继承属性。 判断是否符合S属性定义;是否符合L属性定义;是否存 在和这些规则一致的求值过程
1) A.s=B.i+C.s 2) A.s=B.i+C.s 和 D.i=A.i+B.s 3) A.s=B.s+D.s 4) A.s=D.i, B.i=A.s+C.s, C.i=B.s 和 D.i=B.i+C.i
一、实验目的
根据给出的文法编制语义分析程序。加深对自底向上 语义分析的理解。
二、实验时间
21学时
三、实验内容
对所给语言文法,增加相应的语义代码,并输出所得 三地址码;
实验报告必须包括采用的语法制导定义或翻译模式, 设计的思路,测试报告(输入测试例子,输出结果),设 计的体会。
28
实验三:语义分析实验
四、文法
<program> ::= <block> . <block> ::= <var-decl-list> <statement-list> <var-decl-list> ::= <var-decl> | <var-decl> <var-decl-list> <var-decl> ::= <type> <ident-list> ; <type> ::= float | int <ident-list> ::= id | <ident-list> , id

《编译原理》练习题

《编译原理》练习题

《编译原理》练习题一一、填空题(每空1分)1.设G [S ]是一个文法,我们把能由文法的 (1) 推导出来的符号串α称为G 的一个句型。

当句型α仅由 (2) 组成时 (即α∈V T *),则将它称为G 产生的句子。

2.从某一给定的状态q 出发,仅经过若干条 (3) 的矢线所能达到的状态所组成的集合称为ε-CLOSURE(q)。

3.设G=(V N ,V T ,P,S)是一文法,我们说G 中的一个符号X ∈V N ∪V T 是有用的,是指X 至少出现在 (4) 的推导过程中,否则,就说X 是无用的。

我们将不含形如A→A 的产生式和不含无用符号及无用产生式的文法称为 (5) 。

4.我们常采用形如 (class, value)的二元式作为一个单词的 (6) 。

其中,class 是一个整数,用来指示该单词的 (7) ,value 则是单词之值。

5.一个文法G[S]可表示成形如 (8) 的四元式。

其中V N ,V T ,P 均为非空的有限集,分别称为非终结符号集、终结符号集和产生式集, S ∈V N 为文法的开始符号。

此外,将出现在各产生式左部和右部的一切符号所组成的集合称为 (9) ,记作V 。

显然,V=V N ∪V T ,V N ∩V T =∅。

6.通常,可通过两种途径来构造词法分析程序。

其一是根据对语言中各类单词的某种描述或定义,用 (10) 构造词法分析程序;另外一种途径是所谓词法分析程序的(11) 。

7.设G 为一文法,A→α是G 的一个产生式,如果α具有υAδ的形式,其中υ,δ不同时为ε,则称产生式A→α是 (12) 。

若存在推导δυαA A *⇒⇒,则称产生式A→α是 (13) 。

8.设M=(K,Σ,f,S 0,Z)为一DFA ,并设s 和t 是M 的两个不同状态,我们说状态s,t 为某一输入串w (14) ,是指从s,t 中之一出发,当扫视完w 之后到达M 的终态,但从其中的另一个状态出发,当扫视完同一个w 后而进入 (15) 。

编译原理练习题及答案

编译原理练习题及答案

第一章练习题(绪论)一、选择题1.编译程序是一种常用的软件。

A) 应用B) 系统C) 实时系统D) 分布式系统2.编译程序生成的目标代码程序是可执行程序。

A) 一定B) 不一定3.编译程序的大多数时间是花在上。

A) 词法分析B) 语法分析C) 出错处理D) 表格管理4.将编译程序分成若干“遍”将。

A)提高编译程序的执行效率;B)使编译程序的结构更加清晰,提高目标程序质量;C)充分利用内存空间,提高机器的执行效率。

5.编译程序各个阶段都涉及到的工作有。

A) 词法分析B) 语法分析C) 语义分析D) 表格管理6.词法分析的主要功能是。

A) 识别字符串B) 识别语句C) 识别单词D) 识别标识符7.若某程序设计语言允许标识符先使用后说明,则其编译程序就必须。

A) 多遍扫描B) 一遍扫描8.编译方式与解释方式的根本区别在于。

A) 执行速度的快慢B) 是否生成目标代码C) 是否语义分析9.多遍编译与一遍编译的主要区别在于。

A)多遍编译是编译的五大部分重复多遍执行,而一遍编译是五大部分只执行一遍;B)一遍编译是对源程序分析一遍就立即执行,而多遍编译是对源程序重复多遍分析再执行;C)多遍编译要生成目标代码才执行,而一遍编译不生成目标代码直接分析执行;D)多遍编译是五大部分依次独立完成,一遍编译是五大部分交叉调用执行完成。

10.编译程序分成“前端”和“后端”的好处是A)便于移植B)便于功能的扩充C)便于减少工作量D)以上均正确第二章练习题(文法与语言)一、选择题1.文法 G 产生的 (1) 的全体是该文法描述的语言。

A.句型B. 终结符集C. 非终结符集D. 句子2.若文法 G 定义的语言是无限集,则文法必然是 (2) A递归的 B 上下文无关的 C 二义性的 D 无二义性的3. Chomsky 定义的四种形式语言文法中, 0 型文法又称为(A)文法;1 型文法又称为(C)文法;2 型语言可由(G) 识别。

A 短语结构文法B 上下文无关文法C 上下文有关文法D 正规文法E 图灵机F 有限自动机G 下推自动机4.一个文法所描述的语言是(A);描述一个语言的文法是(B)。

编译原理考试习题及答案

编译原理考试习题及答案

( T ② S ① a
T ,
T ④ S ③ a
2019/1/29
CH.5.练习题3(P133.)

3.(1) 计算练习2文法G2的FIRSTVT和LASTVT。 S→a||(T) T→T,S|S

(1) 解: (执行相应的算法可求得) FIRSTVT(S)={ a, ∧, ( } FIRSTVT(T)={ , , a, ∧, ( } LASTVT(S)={ a, ∧, ) } LASTVT(T)={ , , a, ∧, ) }
(1) 正规式 1(0|1)*101
0
0
DFA:
3,2
1 0
3,5,2
1 1 0
x
1
1,3,2
1
0
3,4,2
1
3,Y,4,2 I0 I1 1 3 3 3 5 3
I {X} {1,3,2} {3,2} {3,4,2} {3,5,2} {3,Y,4,2}
I0 {3,2} {3,2} {3,5,2} {3,2} {3,5,2}
2019/1/29 22
CH.5.练习题2(P133.)

2.(2).给出(a,(a,a))“移进-归约”的过程。 (2) 解: (a,(a,a))的“移进-归约”过程: 步骤 符号栈 输入串 动作 9 #(T,( S ,a))# 归约 S → a 10 #(T,(T , a ))# 归约 T → S 11 #(T,(T, a ))# 移进 , 12 #(T,(T, a ))# 移进 a 13 #(T,( T,S ))# 归约 S → a 14 #(T, (T ) )# 归约 T → T,S 15 #(T, (T) )# 移进 ) 16 #( T, S )# 归约 S → (T)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作业一1.已知文法G[A],写出它定义的语言描述如:G[A]:A → 0B|1CB → 1|1A|0BBC → 0|0A|1CC2. 给出生成下述语言的上下文无关文法:(1){ a n b n a m b m| n,m>=0}(2) { 1n0m 1m0n| n,m>=0}3. 给出生成下述语言的三型文法:(1){ a n b m|n,m>=1 }(2){a n b m c k|n,m,k>=0 }4、文法G[E]为:E→E+T|TT→T*F|FF→(E)|i试给出句型(E+F)*i的短语,简单(直接)短语,句柄。

第3章练习题一、判断题:1、编译程序中的词法分析程序以字符形式的源程序作为输入,输出的单词符号常采用二元组的形式。

2、正规式的运算符“|”读作“或“。

3、若两个正规式所表示的正规集相同,则认为二者是等价的。

4、用l代表字母,d代表数字,Σ={l,d},则正规式r=dd*定义了无符号整数单词。

5、一个确定的有穷自动机DFA M的转换函数f是一个从KⅹΣ到K 的子集的映像。

6、一个非确定的有穷自动机NFA N 的转换函数f是一个从KⅹΣ*到K 的映像。

7、一张状态转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。

8、终态与非终态是可区别的。

9、对任意一个右线性文法G,都存在一个NFA M,满足L(G)=L(M)。

10、对任意一个右线性文法G,都存在一个DFA M,满足L(M)=L(R)。

二、构造正规式1(0|1)*101相应的DFA.练习题2一、判断题:1、空符号串的集合{ε}={}=ф。

2、设A是符号串的集合,则A0=ε。

3、设G是一个文法,S是开始符号,如果S => x且x∈V T*,则称x是文法G[S]的句型。

4、在形式语言中,最右推导的逆过程也称为规范归约。

5、一个语言的文法是唯一的。

6、若一个语言是无穷集合,则定义该语言的文法一定是递归的。

7、一个句型中出现某个产生式的右部,则此右部一定是此句型的句柄。

8、每个直接短语都是某规则的右部。

9、用二义性文法定义的语言也是二义性的。

10、文法的二义性与语言的二义性是两个不同的概念。

11、任何正规文法都是上下文无关文法。

12、正规文法对规则的限制比上下文无关文法对规则的限制要多一些。

二、选择题(从各题的4个答案中选出一个或多个正确的答案写在横线上)(1)一般程序设计语言的描述都涉及()3个方面。

A 语法B 语用C 语义D 基本符号的确定(2)为了使编译程序能对程序设计语言进行正确的翻译,必须采用()方法定义程序设计语言。

A非形式化B自然语言描述问题C形式化 D自然语言和符号体系相结合(3)设x是符号串的幂运算 x0=()。

A 1B xC εD Φ(4)设A是符号串的集合,则A*=()。

A A1∪A2∪…∪A N∪…B A0∪A1∪A2∪…∪A N∪…C {ε}∪A+D A0∪A+(5)字母表中的元素可以是()A 字母 B字母和数字 C 数字D字母、数字和其他符号(6)文法用来描述语言的语法结构,它由如下4个部分组成:()和文法开始符号。

A文法终结符集合B 文法规则的集合C 文法非终结符集合D字母数字串(7)在规则中,符号“→”(::=)表示()。

A 恒等于B 等于C 取决于D 定义为(8)在规则中,符号“|”表示()。

A 与B 或C 非D 定引导开关参数(9)设文法G[E]的规则如下:A→A1|A0|Aa|Ac|a|b|c ,该文法的句子是下列符号串()A ab0B a0c01C aaaD bc10(10) 如果在推导过程中的任何一步α=>β,都是对α中的最右非终结符进行替换,则称这种推导为()。

A.直接推导 B.最右推导 C. 最左推导 D.规范推导(11)描述语言L={a m b n|n≥m≥1}的文法为()。

A.S→ABbB.S→ABbA→aA|a A→aA|aB→bB|b B→aBb | bC. S→Sb |AD.S→aAbA→aAb |ab A→Ab|aAb|ε(12) 设有文法G[S]=({S,B} {b}, {S→bB |b ,B→bS}, S),该文法描述的语言是()。

A.L(G[S])={b n|n ≥0}B.L(G[S])={b2n |n ≥0}C.L(G[S])={b2n+1|n ≥0}D. L(G[S])={ b2n+1|n ≥1}(13) 一个句型最左边的()称为该句型的句柄。

A.短语 B.素短语 C. 直接短语 D.规范短语(14)设有文法G[S]:E→E+T | E-T |TT→T*F |T/F|FF→(E) |i该文法的句型E+T*F的句柄是下列符号串()。

A EB E+TC T*FD E+T*F(15) 设有文法G[T]:T→T*F |FF→F^P | PP→(T) |a该文法的句型T*P^(T*F)的直接短语是下列符号串()。

A. PB. (T*F)C. T*FD. P^(T*F)(16) 若一个文法满足(),则称该文法是二义文法。

A.文法的某一个句子存在两棵(包括两棵)以上的语法树。

B.文法的某一个句子,它有两个(包括两个)以上的最右(最左)推导。

C.文法的某一个句子,它有两个(包括两个)以上的最右(最左)归约。

D.文法的某一个句子存在一棵(包括一棵)以上的语法树。

(17) 在下列描述含+,*算术表达式的文法中,属于二义性文法的是()。

A.E→E+E|E*E|(E)|i B.E→EAE|(E)|iA→+|*C. E→E+T |TD.E→EAE|TT→T*F | F T→TBF|FF→(E) |I F→(E)|iA→+B→*(18)乔姆斯基把文法分成4种类型,即0型、1型、2型和3型。

2型文法也称为()、3型文法也称为()。

A.上下文无关文法B.正规文法C. 上下文有关文法 B.无限制文法1、如下程序流图(图11.18)中,B3中的i∶=2是循环不变量,可以将其提到前置结点吗?你还能举出一些例子说明循环不变量外移的条件吗?图11.182、2、对图11.19的流图:(1) 求出流图中各结点n的必经结点集D(n);(2) 求出流图中的回边;(3) 求出流图中的循环。

图11.19语法分析部分一、判断题:1、LL(1)文法是无左递归、无二义性文法。

2、无左递归的文法是LL(1)文法。

3、在高级语言编译程序常用的语法分析方法中,预测分析法属于自上而下的语法分析方法。

4、在高级语言编译程序常用的语法分析方法中,算符优先分析法属于自上而下的语法分析方法。

5、算符优先分析法是一种规范规约分析法。

6、算符优先分析法是最适合于分析算术表达式。

7、设有一个LR(0)项目集I={X->α.Bβ,A->α.},该项目集含有“移进—归约”冲突。

8、LR分析法是一种规范规约分析法。

9、设有一个LR(1)项目集I={[X->α.bβ, α],[A->α. ,α]},该项目集含有“移进—归约”冲突。

10、SLR(1)文法是二义性文法。

二、选择题(从四个答案中选择一个或多个正确答案写在横线上)1、编译程序中语法分析常用的方法__________________.A. 自上而下分析法B.自下而上分析法C.自左向右分析法 D.自右向左分析法2、编译程序的语法分析器接受以_________________为单位的输入,并产生有关信息供以后各阶段使用。

A. 表达式B.字符串C.单词 D.语句3、在高级语言编译程序常用的语法分析方法中,递归下降分析法属于_____________分析法。

A. 自左向右分析法B.自上而下分析法C.自下而上分析法 D.自右向左分析法4、递归分析法和预测分析法要求描述的文法是_____________。

A. 正规文法B. LR(1)文法C. LL(1)文法D. 右线性文法5、设有文法G[E]:E–>TE’E’–> +TE’| εT –> FT’T‟–> *FT‟ | εF –> (E)|idFIRST(T‟)=__________________, FOLLOW(F)=______________________.A. {(, id )B. {*,ε}C. {*,+,},#}D. {+,),#}6、自下而上语法分析法的原理是__________________.A. “移进-推导法”B. “移进-归约法” C.“最左推导法” D. “推导-归约法”7、设有文法G,如果文法G中没有形如A->…BC…的规则,其中A,B,C为非终结符,则称文法G为_____________.A. 算符优先文法B. LL(1)文法C. LR(1)文法D. 算符文法9、设有文法G[E]:E->E+T|TT->T*F|FF->(E)|a句型T+T*F+a的素短语是_______________.A. aB. T*FC.TD.T+T*F10、设有文法G[S]:S->a|∧|(T)T->T,S|S其中FIRSTVT(T)=______________________, LASTVT(T)=_________________________. A. {a ,(,)} B. {a ,(, ∧)C. {a ,(,‟,‟)D. {a ,(,‟,‟, ∧)E. {$,}}F. {$,},a}G.{a,},‟,‟} H. {…,‟,),a, ∧}11、LR(0)项目集规范族的项目类型可分为__________________.A. 移进项目B. 归约项目C 待约项目 D. 接受项目12、LR(0)分析器的核心部分是一张分析表,这张分析表包括两部分,它们是_________.A.LL(1)分析表B. 分析动作表C 状态转换表 D. 移进分析表13、设有LR(0)项目集I={X->α. bβ, A->α.,B->α.},该项目集含有冲突项目,它们是__________________. A、“移进—归约”冲突 B.“移进—接受”冲突C “移进—待约”冲突D. “归约—归约”冲突第五章自测练习题判断题:1、对任何一个编译程序来说,产生中间代码是不可缺少的一部分。

2、目前多数编译程序进行语义分析的方法采用语法制导翻译法,这是因为语法制导翻译法是一种形式化系统。

3、一个属性文法包括一个上下文无关文法和一系列规则。

4、文法符号的属性有两种,一种称为继承属性,另一种称为综合属性。

5、自下而上语法制导翻译法的特点是语法分析栈与语义分析栈不需同时操作。

6、自下而上语法制导翻译法的特点是在栈顶形成句柄,在归约之前执行相应的语义动作。

7、逆波兰表达式ab+cd+*所代表的中缀形式的表达式是a+b*c+d.8、赋值语句A=A+B*C^(D/E)/F的逆波兰表示是AABCDE/^*F/+=9、表达式-(a+b)*(c+d)-(a+b+c)的四元式表示是:(1)(T1=a+b)(2)(T2=-T1)(3)(T3=c+d)(4)(T4=T2*T3)(5)(T5=a+b)(6)(T6=T5+c)(7)(T7=T4-T6)选择题:(1)编译程序的语义处理有两个任务:一个是(),另一个是()。

相关文档
最新文档