2013-2014北理工编译原理期末试卷

合集下载

编译原理期末考试试题及答案

编译原理期末考试试题及答案

编译原理期末考试试题及答案一、选择题(每题2分,共20分)1. 编译器的前端主要负责以下哪项工作?A. 代码优化B. 目标代码生成C. 词法分析和语法分析D. 运行时支持2. 词法分析器的主要任务是什么?A. 识别语法结构B. 识别词法单元C. 构建语法树D. 代码优化3. 语法分析中,使用哪种方法可以避免回溯?A. 递归下降分析B. LR分析C. LL分析D. 自顶向下分析4. 下列哪个选项不是中间代码的形式?A. 三地址代码B. 四元组C. 抽象语法树D. 汇编语言5. 代码优化的目标不包括以下哪项?A. 提高代码执行速度B. 减少程序占用的内存C. 增加程序的可读性D. 减少程序的执行时间二、简答题(每题10分,共30分)1. 简述编译器的主要组成部分及其功能。

2. 解释什么是语法制导翻译,并举例说明其在编译过程中的应用。

3. 描述静态作用域规则和动态作用域规则的区别。

三、计算题(每题15分,共30分)1. 给定一个简单的算术表达式 `3 + (4 * 5) - 2`,请使用逆波兰表示法表示,并说明其转换过程。

2. 假设有一个简单的文法如下:```S -> A BA -> a A | εB -> b B | ε```请写出使用该文法生成字符串 "ab" 的所有派生树。

四、论述题(每题20分,共20分)1. 论述编译器中代码优化的重要性,并举例说明常见的优化技术。

参考答案一、选择题1. C2. B3. B4. D5. C二、简答题1. 编译器的主要组成部分包括前端、中端和后端。

前端负责词法分析和语法分析,中端进行语义分析和中间代码生成,后端则负责代码优化和目标代码生成。

2. 语法制导翻译是一种基于文法规则的翻译技术,它将源程序的语法结构映射到相应的语义操作上。

例如,在编译过程中,语法制导翻译可以用于将源代码中的条件语句转换为中间代码中的跳转指令。

3. 静态作用域规则是指变量的作用域在编译时确定,而动态作用域规则是指变量的作用域在运行时确定。

编译原理期末试题及答案

编译原理期末试题及答案

编译原理期末试题及答案1、试为表达式w+(a+b)*(c+d/(e-10)+8) 写出相应的逆波兰表示。

2、写出表达式a+b*(c-d)/e的逆波兰式和三元序列。

3、写出表达式a:=(b+c)*e+(b+c)/f的逆波兰式和三元序列。

4、已知文法G(S)及相应翻译方案S→aAb {print “1”}S→a {print “2”}A→AS {print“3”}A→c {print “4”}输入acab, 输出是什么?5、已知文法G(S)S→bAaA→(B | aB→A a)写出句子b(aa)b的规范归约过程。

6、已知文法G[S]S→S*aF | aF | *aFF→+aF | +a消除文法左递归。

1、设文法G(S):S→^ | a | (T)T→T,S | S⑴ 消除左递归;⑵ 构造相应的FIRST和FOLLOW集合;⑶ 构造预测分析表2.语句 if E then S(1) 改写文法,使之适合语法制导翻译;(2) 写出改写后产生式的语义动作。

4.设某语言的for语句的形式为for i:=E(1) to E(2) do S其语义解释为i:=E(1)LIMIT:=E(2)again: if i<=LIMIT thenBeginS;i:=i+1goto againEnd;(1)写出适合语法制导翻译的产生式;(2)写出每个产生式对应的语义动作。

7.已知文法G(S)S→a | ^ | (T)T→T,S | S(1) 给出句子(a,(a,a))的最左推导;(2) 给出句型((T,S),a)的短语, 直接短语,句柄。

8.对于 C 语言do S while E语句(1)改写文法,使之适合语法制导翻译;(2)写出改写后产生式的语义动作。

9.已知文法G(S)S→aAcBeA→Ab| bB→d(1)给出句子abbcde的最左推导及画出语法树;(2)给出句型aAbcde的短语、素短语。

10.设文法G(S):S→(T) | aS | aT→T,S | S⑴消除左递归和提公共左因子;⑵构造相应的FIRST和FOLLOW集合;⑶构造预测分析表。

《编译原理》期末考试题库含答案.docx

《编译原理》期末考试题库含答案.docx

《编译原理》模拟试题一一、是非题(请在括号内,正确的划错误的划X)(每个2分,共20分)1•计算机高级语言翻译成低级语言只有解释一种方式。

(X)2.在编译中进行语法检查的目的是为了发现程序中所有错误。

(X)3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。

(丁 )4.正则文法其产生式为A->a , A->Bb, A.BGVN , a、beVT o (X)5.每个文法都能改写为LL(1)文法。

(V)6.递归下降法允许任一非终极符是直接左递归的。

(V)7.算符优先关系表不一定存在对应的优先函数。

(X)8.自底而上语法分析方法的主要问题是候选式的选择。

(X)9.LR法是自顶向下语法分析方法。

(X)10.简单优先文法允许任意两个产生式具有相同右部。

(X)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.一个编译程序中,不仅包含词法分析,_____ ,中间代码生成,代码优化,目标代码生成等五个部分。

A.()语法分析B.()文法分析C.()语言分析D.()解释分析2.词法分析器用于识别_____ oA.()字符串B.()语句C.()单词D.()标识符3 •语法分析器则可以发现源程序中的______ oA.()语义错误B.()语法和语义错误C.()错误并校正D.()语法错误4.下面关于解释程序的描述正确的是。

(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于COBOL 和FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的A. ( ) (1) (2)B. () (1)C. () (1)⑵(3)D.()⑵⑶5. _________________________________________ 解释程序处理语言时,大多数采用的是 ___________________________________ 方法。

编译原理期末A试卷答案

编译原理期末A试卷答案

黄冈师范学院2012—2013学年度第一学期期末试卷参考答案考试课程:编译原理考核类型:考试A卷考试形式:闭卷出卷教师:牛冀平考试专业:计算机科学与技术,软件工程考试班级:计科201001班,软件201001班一、填空(每空0.5分,共 10分)1、编译程序的功能是是对(高级语言)进行翻译,使之生成目标代码。

2、编译程序的工作过程一般划分为5个阶段:(词法分析)、语法分析、语义分析与中间代码生成,(代码优化)及目标代码生成。

另外还有表格管理和(出错处理)。

3、一个上下文无关文法所含四个组成部分是一组终结符号、一组(非终结符号)、一个开始符号、(一组产生式)。

4、设G是一个给定的文法,S是文法的开始符号,如果S=> x(其中x∈V*),则称x 是文法的一个(句型)。

5、规范归约中的可归约串是指句柄,算符优先分析中的可归约串是指(最左素短语)。

6、在编译过程中,可采用的中间代码形式有()、()、()等。

(三元式、间接三元式、四元式、逆波兰式、抽象语法树)(任选三个即可)7、语法分析最常用的两类方法是(自上而下)和(自下而上)分析法。

8、表达式(a+b)*c的后缀表达式为(ab+c*)。

9、符号表的结构一般有(线性表)、(有序表)、(散列表或哈希表)等。

分别使用的查找方法有(顺序查找)、(折半查找)和(哈希法查找)10、代码优化的目的是(减少代码的时空开销)。

11、寄存器是CPU内部的(存储单元),其访问时间小于CPU对内存的访问时间。

12、如果一个句子存在两棵不同的语法树就说明该句子是(二义性)的。

二、选择题(每题1分,共10分)1、文法的开始符号经多步推导产生的文法符号序列(仅包含终结符)是文法的(D )。

A.短语B.句柄C.句型D.句子2、构造编译程序应掌握(D)。

A.源程序B.目标语言C.编译方法D.以上三项都是3、不属于循环优化的主要方法的是(B)。

A.强度削弱B.删除无用赋值C.删除归纳变量D.代码外提4、使用(A)可以定义一个程序的含义。

(完整版)编译原理期末试题(含答案+大题集+重要知识点)

(完整版)编译原理期末试题(含答案+大题集+重要知识点)
6.2型文法一定是3型文法。()
7.一个句型一定句子。()
8.算符优先分析法每次都是对句柄进行归约。X()
9.采用三元式实现三地址代码时,不利于对中间代码进行优化。()
10.编译过程中,语法分析器的任务是分析单词是怎样构成的。()
11.一个优先表一定存在相应的优先函数。X()
12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。()
C.( )编译方法D.( )以上三项都是
6.四元式之间的联系是通过_____实现的。
A.( )指示器B.( )临时变量
C.( )符号表D.( )程序变量
7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为_____。
A. ( ) ┐AB∨∧CD∨B.( ) A┐B∨CD∨∧
C.( ) AB∨┐CD∨∧D.( ) A┐B∨∧CD∨
6.扫描器的任务是从(源程序中)中识别出一个个(单词符号)。
7.符号表中的信息栏中登记了每个名字的有关的性质,如(类型、种属、所占单元大小、地址)等等。
8.一个过程相应的DISPLAY表的内容为(现行活动记录地址和所有外层最新活动记录的地址)
10.常用的两种动态存贮分配办法是(栈式)动态分配和(堆式)动态分配。
《编译原理》期末试题(一)
一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)
1.编译程序是对高级语言程序的解释执行。(×)
2.一个有限状态自动机中,有且仅有一个唯一的终态。(×)
3.一个算符优先文法可能不存在算符优先函数与之对应。(√)
4.语法分析时必须先消除文法中的左递归。(×)
二、填空题:
2.编译过程可分为 (词法分析) ,(语法分析),(语义分析与中间代码生成),(优化)和(目标代码生成)五个阶段。

《编译原理》期末考试题库含答案.docx

《编译原理》期末考试题库含答案.docx

《编译原理》模拟试题一一、是非题(请在括号内,正确的划错误的划X)(每个2分,共20分)1•计算机高级语言翻译成低级语言只有解释一种方式。

(X)2.在编译中进行语法检查的目的是为了发现程序中所有错误。

(X)3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。

(丁 )4.正则文法其产生式为A->a , A->Bb, A.BGVN , a、beVT o (X)5.每个文法都能改写为LL(1)文法。

(V)6.递归下降法允许任一非终极符是直接左递归的。

(V)7.算符优先关系表不一定存在对应的优先函数。

(X)8.自底而上语法分析方法的主要问题是候选式的选择。

(X)9.LR法是自顶向下语法分析方法。

(X)10.简单优先文法允许任意两个产生式具有相同右部。

(X)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.一个编译程序中,不仅包含词法分析,_____ ,中间代码生成,代码优化,目标代码生成等五个部分。

A.()语法分析B.()文法分析C.()语言分析D.()解释分析2.词法分析器用于识别_____ oA.()字符串B.()语句C.()单词D.()标识符3 •语法分析器则可以发现源程序中的______ oA.()语义错误B.()语法和语义错误C.()错误并校正D.()语法错误4.下面关于解释程序的描述正确的是。

(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于COBOL 和FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的A. ( ) (1) (2)B. () (1)C. () (1)⑵(3)D.()⑵⑶5. _________________________________________ 解释程序处理语言时,大多数采用的是 ___________________________________ 方法。

编译原理期末试题及答案

编译原理期末试题及答案

编译原理期末试题及答案一、选择题(每题2分,共20分)1. 编译器的主要功能是将()代码转换成()代码。

A. 高级语言,低级语言B. 高级语言,机器语言C. 汇编语言,机器语言D. 机器语言,汇编语言答案:B2. 编译过程中,词法分析的输出是()。

A. 语法树B. 语法分析表C. 词法单元D. 抽象语法树答案:C3. 在编译原理中,语法分析通常采用()方法。

A. 递归下降分析B. 动态规划C. 贪心算法D. 回溯算法答案:A4. 语义分析的主要任务是()。

A. 检查语法错误B. 生成中间代码C. 检查语义错误D. 优化代码答案:C5. 编译器的优化通常发生在()阶段。

A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D6. 编译器的前端主要负责()。

A. 代码生成B. 代码优化C. 语法分析D. 目标代码生成答案:C7. 编译器的后端主要负责()。

A. 代码生成B. 代码优化C. 语法分析D. 词法分析答案:A8. 编译原理中,LL(1)分析方法的特点是()。

A. 左到右,最右推导B. 左到右,最左推导C. 右到左,最右推导D. 右到左,最左推导答案:B9. 编译原理中,LR(1)分析方法的特点是()。

A. 左到右,最右推导B. 左到右,最左推导C. 右到左,最右推导D. 右到左,最左推导答案:B10. 编译原理中,语法制导翻译的主要思想是()。

A. 根据语法树的结构进行翻译B. 根据词法单元进行翻译C. 根据语法分析表进行翻译D. 根据语义分析表进行翻译答案:A二、填空题(每题2分,共20分)1. 编译器中,用于表示语法规则的产生式通常由非终结符、产生符号和()组成。

答案:产生式右侧2. 在编译原理中,一个文法是()的,如果它的任何两个产生式都不会导致相同的句柄。

答案:无二义性3. 编译器的词法分析阶段通常使用()算法来识别和分类词法单元。

答案:有限自动机4. 语法分析阶段,如果一个文法是左递归的,编译器需要使用()技术来消除左递归。

编译原理期末试题及答案

编译原理期末试题及答案

1、试为表达式 w+(a+b)*(c+d/(e-10)+8) 写出相应的逆波兰表示。

2、写出表达式a+b*(c-d)/e的逆波兰式和三元序列。

3、写出表达式a:=(b+c)*e+(b+c)/f的逆波兰式和三元序列。

4、已知文法G(S)及相应翻译方案S→aAb {print “1”}S→a {print “2”}A→AS {print “3”}A→c {print “4”}输入acab, 输出是什么?5、已知文法G(S)S→bAaA→(B | aB→A a)写出句子b(aa)b的规范归约过程。

6、已知文法G[S]S→S*aF | aF | *aFF→+aF | +a消除文法左递归。

1、设文法G(S):S→^ | a | (T)T→T,S | S⑴ 消除左递归;⑵ 构造相应的FIRST和FOLLOW集合;⑶ 构造预测分析表2.语句 if E then S(1) 改写文法,使之适合语法制导翻译;(2) 写出改写后产生式的语义动作。

4.设某语言的for语句的形式为for i:=E(1) to E(2) do S其语义解释为i:=E(1)LIMIT:=E(2)again: if i<=LIMIT thenBeginS;i:=i+1goto againEnd;(1)写出适合语法制导翻译的产生式;(2)写出每个产生式对应的语义动作。

7.已知文法G(S)S→a | ^ | (T)T→T,S | S(1) 给出句子(a,(a,a))的最左推导;(2) 给出句型((T,S),a)的短语, 直接短语,句柄。

8.对于 C 语言do S while E语句(1)改写文法,使之适合语法制导翻译;(2)写出改写后产生式的语义动作。

9.已知文法G(S)S→aAcBeA→Ab| bB→d(1)给出句子abbcde的最左推导及画出语法树;(2)给出句型aAbcde的短语、素短语。

10.设文法G(S):S→(T) | aS | aT→T,S | S2. (1)C→if E thenS→CS(1)(2)C→if E then {BACK(E.TC, NXQ); C.chain:=E.FC} S→CS(1) {S.chain:=MERG(C.Chain, S(1). Chain)} 4. (1) F→for i:=E(1) to E(2) doS→FS(1)(2)F→for i:=E(1) to E(2) do{GEN(:=, E(1).place, _, entry(i));F.place:=entry(i);LIMIT:=Newtemp;GEN(:=, E(2).place, _, LIMIT);Q:=NXQ;F.QUAD:=q;GEN(j≤, entr y(i), LIMIT, q+2)F.chain:=NXQ;GEN(j, _, _, 0)}S→FS(1){BACKPATCH(S(1).chain, NXQ);GEN(+, F.place, 1, F.place);GEN(j, _, _, F.QUAD);S.chain:=F.chain}7. 最左推导S=(T)=>(T,S)=>(S,S)=>(a,S)=>(a,(T))=>(a,(T,S))=>(a,(S,S))=>(a,(a,S))=>(a,(a,a))短语((T,S),a)(T,S),a(T,S)T,Sa直接短语T,Sa句柄T,S9.(1) S=>aAcBe=>AAbcBe=>abbcBe=>abbcde(2) 短语: aAbcde, Ab, d素短语: Ab, d10.(1) S →(L) | aS’S’→S |εL→SL’L’→,SL’ |ε(2) FIRST(S)={a, (} FIRST(S’)={a, (, ε}FIRST(L)={a, (} FIRST(L’)={,, ε}FOLLOW(S)={,, ), #} FOLLOW(S’)={,, ), #}FOLLOW(L)={ )} FOLLOW(L’)={ )}(3)12.(1) E=>E+T=>T+T=>T*F+T=>F*F+T=>(E)*F+T=>(E+T)*F+T=>(T+T)*F+T=>(F+T)*F+T=>(i+T)*F+T=>(i+F)*F+T=>(i+i)*F+T=>(i+i)*i+T =>(i+i)*i+F=>(i+i)*i+i(2) 短语 i, F, E+T, (E+T), (E+T)*i, (E+T)*i+F 素短语 i, E+T最左素短语 E+T《编译原理》期末试题(二)对于函数f2,由于局部变量x 的作用域只是函数体的一部分,不会出现上述问题,因而编译器不报错。

编译原理期末考试试卷及答案

编译原理期末考试试卷及答案

 规范规约是最( )规约。

 编译程序的工作过程一般划分为 个阶段:词法分析、( ) 、语义分析与中间代码生成,代码优化及( ) 。

另外还有( )和出错处理。

.表达式⌧⍓✉☎♋♌✆的后缀式为 ( ) 。

.文法符号的属性有综合属性和 ( )。

.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组♋☯某个元素♋☯♓, 的地址计算公式为( )。

.局部优化是局限于一个( )范围内的一种优化。

二. 选择题( 为单选题, 为多选题,每问 分,共 分) 一个上下文无关文法☝包括四个组成部分:一组终结符,一组非终结符,一个( ),以及一组( )。

✌. 字符串 . 产生式 . 开始符号 . 文法程序的基本块是指( )。

✌. 一个子程序 . 一个仅有一个入口和一个出口的语句. 一个没有嵌套的程序段 . 一组顺序执行的程序段,仅有一个入口和一个出口 高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析方法。

✌. 自左向右 . 自顶向下 . 自底向上 . 自右向左.在通常的语法分析方法中,( )特别适用于表达式的分析。

✌. 算符优先分析法 . ☹分析法. 递归下降分析法 . ☹☹( )分析法.经过编译所得到的目标程序是( )。

✌. 四元式序列 . 间接三元式序列. 二元式序列 . 机器语言程序或汇编语言程序. 一个文法所描述的语言是( );描述一个语言的文法是( )。

✌. 唯一的 . 不唯一的 . 可能唯一,也可能不唯一. 如果在文法☝中存在一个句子,当其满足下列条件( )之一时,则称该文法是二义文法。

✌. 其最左推导和最右推导相同 . 该句子有两个不同的最左推导. 该句子有两个不同的最右推导 . 该句子有两棵不同的语法树☜. 该句子对应的语法树唯一. 下面( )语法制导翻译中,采用拉链—回填技术。

✌ 赋值语句  布尔表达式的计算  条件语句  循环语句. (共 分)已知文法☝☯☜☜→☜❆☜(☜) ♓❆→✉( )将文法☝改造成☹☹( )文法;( 分)( )构造文法☝中每个非终结符的☞✋❆集合及☞☹☹集合;( 分)( )构造☹☹( )分析表。

编译原理期末试题(8套含答案+大题集)

编译原理期末试题(8套含答案+大题集)

《编译原理》期末试题(一)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行。

(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。

(×)3.一个算符优先文法可能不存在算符优先函数与之对应。

(√ )4.语法分析时必须先消除文法中的左递归。

(×)5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。

(√)6.逆波兰表示法表示表达式时无须使用括号。

(√ )7.静态数组的存储空间可以在编译时确定。

(×)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。

(×) 9.两个正规集相等的必要条件是他们对应的正规式等价。

(× )10.一个语义子程序描述了一个文法所对应的翻译工作。

(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.词法分析器的输出结果是_____。

A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.( ) 单词的种别编码和自身值D.( ) 单词自身值2.正规式M 1 和M 2 等价是指_____。

A.( ) M1和M2的状态数相等B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是_____。

A.( ) xyx B.( ) (xyx)* C.( ) xnyxn(n≥0) D.( ) x*yx*4.如果文法G是无二义的,则它的任何句子α_____。

A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。

编译原理期末试题及答案

编译原理期末试题及答案

1、试为表达式 w+(a+b)*(c+d/(e-10)+8) 写出相应的逆波兰表示。

2、写出表达式a+b*(c-d)/e的逆波兰式和三元序列。

3、写出表达式a:=(b+c)*e+(b+c)/f的逆波兰式和三元序列。

4、已知文法G(S)及相应翻译方案S→aAb {print “1”}S→a {print “2”}A→AS {print “3”}A→c {print “4”}输入acab, 输出是什么?5、已知文法G(S)S→bAaA→(B | aB→A a)写出句子b(aa)b的规范归约过程。

6、已知文法G[S]S→S*aF | aF | *aFF→+aF | +a消除文法左递归。

1、设文法G(S):S→^ | a | (T)T→T,S | S⑴ 消除左递归;⑵ 构造相应的FIRST和FOLLOW集合;⑶ 构造预测分析表2.语句 if E then S(1) 改写文法,使之适合语法制导翻译;(2) 写出改写后产生式的语义动作。

4.设某语言的for语句的形式为for i:=E(1) to E(2) do S其语义解释为i:=E(1)LIMIT:=E(2)again: if i<=LIMIT thenBeginS;i:=i+1goto againEnd;(1)写出适合语法制导翻译的产生式;(2)写出每个产生式对应的语义动作。

7.已知文法G(S)S→a | ^ | (T)T→T,S | S(1) 给出句子(a,(a,a))的最左推导;(2) 给出句型((T,S),a)的短语, 直接短语,句柄。

8.对于 C 语言do S while E语句(1)改写文法,使之适合语法制导翻译;(2)写出改写后产生式的语义动作。

9.已知文法G(S)S→aAcBeA→Ab| bB→d(1)给出句子abbcde的最左推导及画出语法树;(2)给出句型aAbcde的短语、素短语。

10.设文法G(S):S→(T) | aS | aT→T,S | S⑴消除左递归和提公共左因子;⑵构造相应的FIRST和FOLLOW集合;⑶构造预测分析表。

编译原理期末考试试卷及答案

编译原理期末考试试卷及答案

期末考试试卷(A)卷一、填空题(每小题2分,共20分)1、字母表∑,用∑*表示∑上所有有穷长的串集合,∑*称为∑的①。

2、设z=abc,则z的固有头是①。

3、如何由语言基本符号组成程序中各个语法成分(包括程序)的一组规则叫①。

4、设∑={a,b},∑上的正规式(a|b)(a|b) 相应的正规集为①5、NFA的映象f是从"状态×字"映射到"状态子集",f为①值函数。

6、LR分析是按规范句型的①为可归约串。

7、结点的①属性值由该结点的兄弟结点和父结点的属性值计算。

8、如果分析树中一结点的属性b依赖于属性c,那么这个结点的属性b的语义规则的计算必须在定义属性c的语义规则的计算①。

9、对于栈式符号表,引入一个显示嵌套层次关系表- ①表,该表总是指向当前正在处理的最内层的过程的子符号表在栈符号表中的起始位置。

10、任一有向边序列n1 → n2,n2 → n3,…,nk-1 → nk为从结点n1到结点nk的一条通路。

如果n1=nk,则称该通路为①。

二、单项选择(每小题2分,共14分)1、乔姆斯基把文法分成4种类型,即0型、1型、2型和3型。

其中3型文法也称为()。

A.上下无关文法 B.正规文法C.上下文有关文法 D.无限制文法2、生成非0开头的正偶数集的文法是()。

A. Z::=ABC B. Z::=ABCC::=0|2|4|6|8 C::=0|2|4|6|8B::=BA|B0|ε B::=BA|B0|0A::=1|2|3|…|9 A::=1|2|3|…|9C. Z::=ABC|2|4|6|8D. Z::=ABC|2|4|6|8C::=0|2|4|6|8 C::=0|2|4|6|8B::=BA|B0|0 B::=BA|B0|εA::=1|2|3|…|9 A::=1|2|3|…|93、简单优先分析法从左到右扫描输入串,当栈顶出现()时进归约。

A.素短语B.直接短语C.句柄D.最左素短语4、同心集合并有可能产生新的()冲突。

北京理工大学COM07017-2013编译原理与设计A

北京理工大学COM07017-2013编译原理与设计A

课程编号:COM07017北京理工大学2015—2016学年第二学期2013级计算机科学与技术类编译原理与设计试题A卷班级学号姓名成绩** 注意:各题均必须答在答题纸上。

一.判断题(在答题表中填上“√”或“×”)(10分)1.对任何一个NFA M,不一定都存在一个DFA M' ,使M和M'所识别的字的全体相同。

2.一个DFA M的无关状态(或称之为多余状态、无用状态)是指从DFA M的初态开始,任何输入序列都不能到达的那些状态。

3.词法分析器通常需要超前扫描输入字符以确定每个单词的结束位置。

4.多数程序设计语言的词法规则可用正则文法或正规式进行描述。

5.第10章的PL/0编译程序采用Display表查找外层过程的最新活动记录。

6.若过程P第K次被调用,则P的Display表中就有K+1个元素。

7.在后缀式(逆波兰式)和中缀式中,运算对象排列的顺序一致。

8.语法制导翻译方法可用来产生各种中间代码,但不能用来产生目标代码。

9.所有LR分析器的总控程序都是一样的,只是分析表各有不同。

10.一个素短语除自身外,其子串中没有其他素短语。

二、单项选择题(10分)1.下述关于词法分析器中的对半互补输入缓冲区的描述错误的是【】A)方便输入字符串的超前扫描B)方便字符回退C)可以支持无限长度单词的识别D)缓冲区大小一般设置为磁盘扇区大小的整数倍2.下述关于Lex和Yacc的描述错误的是【】A)Lex和Yacc编译器接受正规式并据此构造相应的有限状态自动机B)Lex编译器采用子集法将NFA转化为DFAC)Lex编译器采用划分法对DFA进行化简D)Yacc编译器生成的是移进归约语法分析器3.无法在局部优化阶段实施的优化技术是【】A)公共子表达式删除B)常量合并C)无用赋值删除D)死代码删除4.解释程序和编译程序的区别在于【】A)是否生成中间代码B)加工的对象不同C)使用的实现技术不同D)是否生成目标程序5.关于编译程序中使用符号表的作用描述错误的是【】A)收集标识符属性信息B)语义检查依据C)代码生成时地址分配依据D)便于移植6.从无冲突的LR(1)项目集规范簇通过合并同心项目集,得到的LALR(1)项目集规范簇中会出现【】冲突A)移进-移进B)移进-归约C)归约-归约D)任何7.就文法的描述能力,有【】A)LALR(1)⊂SLR(1) B)SLR(1)⊂LR(0)C)LALR(1) ⊂LR(1) D)LR(1) ⊂LR(0)8.如果一个正规式所描述的语言是个无限集合,则该正规式一定含有的运算是【】A)连接运算“•”B)或运算“|”C)闭包运算“*”D)括号运算“()”9.有文法G(S)的属性文法如下所示(语义规则中的×和+分别是常规意义下的算术运算符):S→E {输出(E.val)}E→E?T {E.val=E1.val×T.val}E→T{E.val= T.val}T→T#num {T.val=T1.val+num.lexval}T→num {T.val=num.lexval}则句子1?2?3#4的语义处理结果是【】A)10 B)34 C)14 D)5410.LR分析法中,分析栈中存放的符号串始终是规范句型的【】A)短语B)活前缀C)项目D)句柄三.填空题(30分)1.第10章的PL/0编译程序采用【①】遍扫描,以【②】分析程序为核心对输入源程序进行解释执行。

编译原理期末试题

编译原理期末试题

编译原理》期末试题(-)、是非题(请在括号内,正确的划V,错误的划X)(每个2分,共20分)1编译程序是对高级语言程序的解释执行。

(X2. 一个有限状态自动机中,有且仅有一个唯一的终态。

(X)3. 一个算符优先文法可能不存在算符优先函数与之对应。

(V)4 •语法分析时必须先消除文法屮的左递归。

(X)5. LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。

(V)6. 逆波兰表示法表示表达式时无须使用括号。

(V)7. 静态数组的存储空间可以在编译时确定。

(X)&进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。

(X)9. 两个正规集相等的必要条件是他们对应的正规式等价。

(X)10. 一个语义子程序描述了一个文法所对应的翻译工作。

(X)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1 •词法分析器的输出结果是______A. ()单词的种别编码C.()单词的种别编码和自身值2. 正规式M 1和M2等价是指B・()单词在符号表屮的位置D.()单词自身值A. ()M1和M2的状态数相等C. ()M1和M2所识别的语言集相等B. ()M1和M2的有向边条数相等D. ()M1和M2状态数和有向边条数相等3. 文法G: STxSx|y所识别的语言是4. 如果文法G 是无二义的,则它的任何句子 白A ・()最左推导和最右推导对应的语法树必定相同B ・()最左推导和最右推导对应的语法树可能不同C. ()最左推导和最右推导必定相同D ・()可能存在两个不同的最左推导,但它们对应的语法树相同5. 构造编译程序应掌握 ________ oA.()源程序B.()目标语言C.()编译方法D.()以上三项都是6. 四元式之间的联系是通过 ________ 实现的。

A.()指示器 B .()临时变量 C .()符号表D.()程序变量7. _______________________________________ 表达式(心B)A(CVD)的逆波兰表示为。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档