昆明理工大学编译原理模拟试题
《编译原理》考试试题及答案
![《编译原理》考试试题及答案](https://img.taocdn.com/s3/m/6408bd0e03d8ce2f0066238b.png)
《编译原理》考试试题及答案(附录)一、判断题:1.一个上下文无关文法的开始符,可以是终结符或非终结符。
( X )2.一个句型的直接短语是唯一的。
( X )3.已经证明文法的二义性是可判定的。
( X )4.每个基本块可用一个DAG表示。
(√)5.每个过程的活动记录的体积在编译时可静态确定。
(√)6.2型文法一定是3型文法。
( x )7.一个句型一定句子。
( X )8.算符优先分析法每次都是对句柄进行归约。
(应是最左素短语) ( X )9.采用三元式实现三地址代码时,不利于对中间代码进行优化。
(√)10.编译过程中,语法分析器的任务是分析单词是怎样构成的。
( x )11.一个优先表一定存在相应的优先函数。
( x )12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )13.递归下降分析法是一种自下而上分析法。
( )14.并不是每个文法都能改写成LL(1)文法。
( )15.每个基本块只有一个入口和一个出口。
( )16.一个LL(1)文法一定是无二义的。
( )17.逆波兰法表示的表达试亦称前缀式。
( )18.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )19.正规文法产生的语言都可以用上下文无关文法来描述。
( )20.一个优先表一定存在相应的优先函数。
( )21.3型文法一定是2型文法。
( )22.如果一个文法存在某个句子对应两棵不同的语法树,则文法是二义性的。
( )二、填空题:1.( 最右推导 )称为规范推导。
2.编译过程可分为(词法分析),(语法分析),(语义分析和中间代码生成),(代码优化)和(目标代码生成)五个阶段。
3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是()。
4.从功能上说,程序语言的语句大体可分为()语句和()语句两大类。
5.语法分析器的输入是(),其输出是()。
6.扫描器的任务是从()中识别出一个个()。
编译原理考试题及答案
![编译原理考试题及答案](https://img.taocdn.com/s3/m/12d75e0c9a6648d7c1c708a1284ac850ad02043e.png)
编译原理考试题及答案一、选择题(每题2分,共20分)1. 编译器的主要功能是什么?A. 代码优化B. 代码解释C. 代码翻译D. 代码调试答案:C2. 编译过程中的语法分析阶段主要解决什么问题?A. 词法问题B. 语法问题C. 语义问题D. 代码生成问题答案:B3. 在编译原理中,哪些技术用于处理程序中的递归结构?A. 正则表达式B. 有限自动机C. 上下文无关文法D. 属性文法答案:C4. 编译器的哪个部分负责将中间代码转换为目标代码?A. 词法分析器B. 语法分析器C. 语义分析器D. 代码生成器答案:D5. 编译器中的词法分析器主要使用哪种数据结构来存储输入的源代码?A. 栈B. 队列C. 链表D. 哈希表答案:C6. 在编译原理中,哪个概念用于描述程序语言的语法结构?A. 语法树B. 抽象语法树C. 控制流图D. 数据流图答案:B7. 编译器的哪个阶段负责检查变量是否被正确声明和使用?A. 词法分析B. 语法分析C. 语义分析D. 代码优化答案:C8. 编译器在哪个阶段会进行代码优化?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D9. 在编译原理中,哪些技术用于生成有效的目标代码?A. 语法分析B. 语义分析C. 代码优化D. 目标代码生成答案:D10. 编译器的哪个部分负责将源代码中的注释和空白字符去除?A. 词法分析器B. 语法分析器C. 语义分析器D. 代码生成器答案:A二、填空题(每题2分,共20分)1. 编译器的前端包括词法分析、语法分析和______。
答案:语义分析2. 编译器的后端包括中间代码生成、______和目标代码生成。
答案:代码优化3. 编译原理中的______用于描述词法单元。
答案:词法规则4. 编译原理中的______用于描述程序语言的语法结构。
答案:上下文无关文法5. 编译原理中的______用于描述程序语言的语义。
答案:属性文法6. 编译原理中的______用于描述程序控制流。
(完整word版)编译原理模拟试题五
![(完整word版)编译原理模拟试题五](https://img.taocdn.com/s3/m/2cae1c820242a8956bece4fa.png)
《编译原理》期末试题(一)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个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.构造编译程序应掌握______。
A.( )源程序B.( ) 目标语言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∨8. 优化可生成_____的目标代码。
A.( ) 运行时间较短 B.( ) 占用存储空间较小C.( ) 运行时间短但占用内存空间大D.( ) 运行时间短且占用存储空间小9.下列______优化方法不是针对循环优化进行的。
A. ( ) 强度削弱B.( ) 删除归纳变量C.( ) 删除多余运算D.( ) 代码外提10.编译程序使用_____区别标识符的作用域。
编译原理考试题及答案
![编译原理考试题及答案](https://img.taocdn.com/s3/m/ce77e49909a1284ac850ad02de80d4d8d15a01af.png)
编译原理考试题及答案一、选择题(每题5分,共20分)1. 编译器的主要功能是什么?A. 代码优化B. 代码翻译C. 代码调试D. 代码运行答案:B2. 下列哪个选项不属于编译器的前端部分?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,文法的产生式通常表示为:A. A -> αB. A -> βC. A -> γD. A -> δ答案:A4. 下列哪个算法用于构建语法分析树?A. LL(1)分析B. LR(1)分析C. SLR(1)分析D. LALR(1)分析答案:A二、填空题(每空5分,共20分)1. 编译器的前端通常包括词法分析、语法分析和________。
答案:语义分析2. 编译器的后端主要负责________和目标代码生成。
答案:代码优化3. 编译器中的词法分析器通常使用________算法来识别单词。
答案:有限自动机4. 语法分析中,________分析是一种自顶向下的分析方法。
答案:递归下降三、简答题(每题10分,共30分)1. 简述编译器的作用。
答案:编译器的主要作用是将高级语言编写的源代码转换成计算机能够理解的低级语言或机器代码,以便执行。
2. 解释一下什么是语法制导翻译。
答案:语法制导翻译是一种翻译技术,它利用源语言的语法信息来指导翻译过程,使得翻译过程能够更好地理解源代码的语义。
3. 什么是词法分析器?答案:词法分析器是编译器前端的一部分,它的任务是将源代码文本分解成一系列的标记(tokens),这些标记是源代码的最小有意义的单位。
四、计算题(每题10分,共30分)1. 给定一个简单的文法G(E):E → E + T | TT → T * F | FF → (E) | id请计算文法的非终结符号E的FIRST集和FOLLOW集。
答案:E的FIRST集为{(, id},FOLLOW集为{), +, $}。
2. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。
编译原理考试及答案
![编译原理考试及答案](https://img.taocdn.com/s3/m/c5c5a782162ded630b1c59eef8c75fbfc77d943a.png)
编译原理考试及答案一、选择题(每题2分,共20分)1. 编译器的主要功能是将源代码翻译成目标代码,以下哪个选项不属于编译器的主要功能?A. 词法分析B. 语法分析C. 语义分析D. 代码优化答案:D2. 在编译原理中,BNF(巴科斯-诺尔范式)是一种用于描述哪种结构的记号?A. 语法结构B. 词法结构C. 语义结构D. 控制结构答案:A3. 编译过程中的哪个阶段负责检查变量是否被正确声明?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:C4. 下列哪个选项不是编译器前端处理的一部分?A. 预处理B. 词法分析C. 语法分析D. 目标代码生成答案:D5. 在编译原理中,自底向上的解析方法通常指的是哪种分析方法?A. LL(1)分析B. LR(1)分析C. LALR(1)分析D. SLR(1)分析答案:B6. 编译器中的语义分析阶段主要负责什么?A. 识别标识符B. 检查语法结构C. 构建抽象语法树D. 生成中间代码答案:C7. 编译器中的错误恢复机制主要在哪个阶段进行?A. 词法分析B. 语法分析C. 语义分析D. 代码优化答案:B8. 编译器中的代码优化通常发生在哪个阶段?A. 语义分析B. 中间代码生成C. 目标代码生成D. 机器无关代码优化答案:D9. 在编译原理中,哪些技术用于处理左递归?A. 直接左递归消除B. 间接左递归消除C. 直接和间接左递归消除D. 只有直接左递归消除答案:C10. 编译器中的哪些技术用于处理冲突?A. 预测分析表B. 状态转换图C. 优先级规则D. 所有选项答案:D二、填空题(每题2分,共20分)1. 编译器的前端主要负责源程序的______和______。
答案:词法分析;语法分析2. 编译器的后端主要负责______和______。
答案:代码优化;目标代码生成3. 在编译原理中,一个文法的产生式规则形式为:A → α,其中A是非终结符,α是终结符和非终结符的有限序列,这种产生式规则被称为______产生式。
编译原理编译原理考试卷模拟考试题.docx
![编译原理编译原理考试卷模拟考试题.docx](https://img.taocdn.com/s3/m/474682326529647d26285200.png)
《编译原理》考试时间:120分钟 考试总分:100分遵守考场纪律,维护知识尊严,杜绝违纪行为,确保考试结果公正。
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+dB.(a+/(c+C.a+b/(c+D.a+b+c/d9、程序所需的数据空间在程序运行前就可确定,称为()管理技术。
()A.动态存储B.栈式存储C.静态存储D.堆式存储10、堆式动态分配申请和释放存储空间遵守()原则。
()A.先请先放B.先请后放C.后请先放D.任意11、一个编译程序中,不仅包含词法分析,(),中间代码生成,代码优化,目标代码生成等五个部分。
编译原理模拟试题和答案[编译原理模拟试题和答案.d
![编译原理模拟试题和答案[编译原理模拟试题和答案.d](https://img.taocdn.com/s3/m/24279679192e45361066f559.png)
【题型】简答题1题干】现有文法G[S]:B→idt|ε请问aidtccb是句型还是句子,为什么?S→aAbA→BcA|B【答案】S ⇒aAb ⇒aBcAb ⇒aidtcAb ⇒aidtcBcAb ⇒aidtc εcAb ⇒ aidtccAb⇒aidtccBb ⇒aidtcc εb ⇒ aidtccb是句型,也是句子。
【题型】简答题2题干】设有文法G1[S]:<S>→<N><N>→<D>|<N><D><D→0|1|2|…|9试写出028的最左推导过程。
【答案】028的最左推导:<S>=><N>=><N><D>=><N><D><D>=><D><D><D>=>0<D><D>=>02<D>=>028。
3题型】填空题【题干】递归下降法不允许任一非终结符是直接_______________递归的。
【答案】左;4题型】填空题【题干】在使用高级语言编程时,首先可通过编译程序发现源程序的全部_______________错误和部分语义错误。
【答案】语法;5题型】填空题【题干】把汇编语言程序翻译成机器可执行的目标程序的工作是由_______________完成的。
【答案】汇编器;6题型】填空题【题干】语法分析器的输出是_______________。
【答案】语法单位;循环优化的三种重要技术包括删除归纳变量、代码外提和_______________。
【答案】强度消弱;8题干】写出表达式(a+b)/(a-b)-a(a+b*c)的三元式序列及四元式序列。
【答案】三元式:⑴.(+,a,b) ⑵.(-,a,b) ⑶.(/,⑴,⑵) ⑷.(*,b,c) ⑸.(+,a,⑷) ⑹.(-,⑶,⑸)四元式:⑴.(+,a,b,T1) ⑵.(-,a,b,T2) ⑶.(/,T1,T2,T3) ⑷.(*,b,c,T4) ⑸.(+,a,T4,T5) ⑹.(-,T3,T5,T6)9题干】什么是句子?什么是语言?【答案】(1)设G是一个给定的文法,S是文法的开始符号,如果S→x(其中x∈VT*),则称x是文法的一个句子。
编译原理模拟试卷及答案
![编译原理模拟试卷及答案](https://img.taocdn.com/s3/m/3305a2bfdc3383c4bb4cf7ec4afe04a1b071b028.png)
编译原理模拟试卷及答案模拟试题二出版日期:2022年6月5日编辑:管理员阅读号码:240一、是非题(下列各题,你认为正确的,请在题干的括号内打“√”,错的打“×”。
每题1分,共5分)1.操作员优先级关系表不一定有相应的优先级函数。
2、数组元素的地址计算与数组的存储方式有关。
3.只考虑一个基本块,不可能确定一项任务是否真的无用。
4、每个文法都能改写为ll(1)文法。
5.对于数据空间的存储分配,FORTRAN采用动态存储分配策略。
二、填空题(每题2分,共20分)1.从功能上讲,程序语言的语句可以分为______________________。
2、扫描器的任务是从________中识别出一个个_______。
3.最右边的派生词是指:。
4、语法分析最常用的两类方法是________和_________分析法。
5.上下文无关语法的四个组成部分是。
6、所谓语法制导翻译方法是_____________________。
7.每个名称的相关属性都登记在符号表的信息列中,例如___________________。
8、一个过程相应的display表的内容为________。
9.两种常用的动态存储分配方法是____________________。
10、产生式是用于定义_____的一种书写规则。
三、术语解释(每个问题2分,共10分)1、遍2.无环有向图(DAG)3、语法分析4.短语5、后缀式四、简短问题(每个问题4分,共24分)1、考虑下面程序vara:integer;程序(x)varx:integer;开始a:=a+1;x:=a+xend;开始a:=5;s(a)print(a)结束。
试问:若参数传递方式分别采取传名和传值时,程序执行后输出a的值是什么?2.用Pascal语言绘制实数(无符号和指数部分)的状态转移图。
3、写出表达式(a+b*c)/(a+b)-d的逆波兰表示及三元式序列。
4.已知语法g(s)s→a|∧|(t)T→t、 s | s写出句子((a,a),a)的规范归约过程及每一步的句柄。
编译原理练习题及答案
![编译原理练习题及答案](https://img.taocdn.com/s3/m/574e8c48852458fb770b56a5.png)
第一章练习题(绪论)一、选择题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)。
编译原理考试题及答案
![编译原理考试题及答案](https://img.taocdn.com/s3/m/454cb860773231126edb6f1aff00bed5b9f373bb.png)
编译原理考试题及答案一、选择题(每题2分,共10分)1. 在编译原理中,词法分析的主要任务是什么?A. 将源程序代码转换为中间代码B. 识别源程序中的词法单位并生成词法单元C. 检查源程序的语法正确性D. 优化生成的代码答案:B2. 下列哪个不是编译器的组成部分?A. 词法分析器B. 语法分析器C. 代码生成器D. 运行时库答案:D3. 在编译过程中,语义分析的主要作用是什么?A. 识别词法错误B. 检查语法错误C. 检查类型错误D. 生成目标代码答案:C4. 编译器中的中间代码表示通常采用哪种形式?A. 三地址代码B. 后缀表达式C. 抽象语法树D. 逆波兰表示答案:A5. 编译器优化的主要目标是什么?A. 增加程序的可读性B. 提高程序的执行效率C. 减少程序的存储空间D. 以上都是答案:D二、填空题(每题2分,共10分)1. 编译器的前端主要包括词法分析、______和语义分析。
答案:语法分析2. 编译器的后端主要包括代码优化、______和目标代码生成。
答案:代码生成3. 词法分析器通常使用______来识别词法单位。
答案:有限自动机4. 语法分析器可以使用______文法来描述语言的语法结构。
答案:上下5. 编译器优化中,______优化可以减少程序的运行时间。
答案:时间三、简答题(每题5分,共20分)1. 简述编译器的主要功能。
答案:编译器的主要功能包括将高级语言编写的源程序转换成等价的目标程序,同时进行语法、语义和运行时错误检查,以及代码优化以提高程序的执行效率。
2. 描述编译过程中的词法分析阶段的主要任务。
答案:词法分析阶段的主要任务是将源程序的字符序列分割成一系列的标记(token),这些标记是源程序中最小的有意义的单位,如关键字、标识符、常量等,并为后续的语法分析阶段提供输入。
3. 什么是语法分析?它在编译过程中的作用是什么?答案:语法分析是编译过程中的一个阶段,其任务是根据语言的语法规则检查源程序是否符合语法结构,并构建出抽象语法树(AST)。
编译原理模拟试题
![编译原理模拟试题](https://img.taocdn.com/s3/m/30c273204b73f242336c5fc2.png)
昆明理工大学试卷(A)考试科目:编译原理考试日期:命题教师:集体学院:专业班级:学生姓名:学号:任课教师:上课班级:考试座位号:一、填空(每空1分,共20分)1、计算机执行用高级语言编写的程序主要有两种途径:___解释__和__编译___。
2、如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义性的。
3、扫描器的任务是从源程序中中识别出一个个单词符号。
4、语法分析器的输入是单词符号,其输出是语法单位。
5、规范规约中的可归约串是句柄6、对于文法G1和G2,若有L(G1)=L(G2) (或G1和G2是等价的。
7、最右推导的逆过程称为规范归约,也称为最左归约。
8、自上而下分析法采用___移进__、归约、错误处理、___接受__等四种操作。
9、语法分析的方法大致可分为两类,一类是自上而下分析法,另一类是自下而上分析法。
10、2型文法又称为上下文无关文法;3型文法又称为正则文法。
11、表达式式_a/(b-c)所代表的逆波兰表达式是___ abc-/_。
12、对于文法G,仅含终结符号的句型称为句子。
二、单项选择题(每题2分,共20分)1、词法分析器的输出结果是()。
A.单词的种别编码B.单词在符号表中的位置C.单词的种别编码和自身值D.单词自身值2、3.一个句型中称为句柄的是该句型的最左()。
A.非终结符号B.短语C.句子D.直接短语3、下推自动机识别的语言是()。
A.0型语言B.1型语言C.2型语言D.3型语言4、()型文法也称为正规文法。
A 0B 1C 2D 35、采用自上而下分析,必须()。
A.消除左递归B.消除右递归C.消除回溯D.提取公共左因子6、设有文法G[I]: I→I1|I0|Ia|Ic|a|bc下列符号串中是该文法的句子有()。
(1) ab0 (2) a0c01 (3) aaa (4) bc10A. (1)B. (2)(3)(4)C. (3)(4)D. (1)(2)(3)(4)7、正则集合L={a n|n≥0}相应的正则表达式是()A.a* B.a+ C.aa* D.aa+8、在自上而下的语法分析中可能引起回溯的产生式是()。
编译模拟试题及答案Word版
![编译模拟试题及答案Word版](https://img.taocdn.com/s3/m/3e96edbacaaedd3383c4d3ec.png)
《编译原理》模拟试题班级学号姓名评分一、填空1.文法G包括四个组成部分:一组终结符号,,一组产生式,以及。
2.文法按产生式的形式分为四种类型,它们是:0型文法,又称短语文法;1型文法,又称上下文有关文法;2型文法,又称文法;3型文法,又称文法。
3.推导称为规范推导,由产生的句型称为规范句型。
4.设G是一个文法,S是它的开始符号,如果 S α,则称α是一个句型。
的句型是一个句子。
5 对于一个文法G而言,如果L(G)中对应,那么该文法就称为是二义的。
6.通常程序设计语言的单词符号分为五种:基本字、、常数、、界限符。
7.在自底向上分析法中,LR分析法把“可归约串”定义为。
8.编译中常用的中间代码形式有逆波兰式、、和四元式等。
9.对中间代码优化按涉及的范围分为局部优化,和。
10.局部优化主要包括合并已知量、和等内容。
二、编译过程通常分为哪几个主要阶段?每个阶段的主要功能?三、设有文法G1 G1:S→SaQ ∣ Q1.证明句型QbRae是规范句型 Q→QbR ∣ R R→cSd ∣ e2.给出句型QbRae 的短语,直接短语和句柄:短语:直接短语:句柄:四、对于文法G2,填写各产生式的选择集合和G2的预测分析表。
G2:① E→TE' SELECT(①)={ }② E'→+TE’ SELECT(②)={ }③ E'→ε SELECT(③)={ }④ T→FT' SELECT(④)={ }⑤ T'→*FT’ SELECT(⑤)={ }⑥ T'→ε SELECT(⑥)={ }⑦ F→(E) SELECT(⑦)={ }⑧ F→ i SELECT(⑧)={ }五、把下面的语句翻译成四元式序列。
(只给出最后结果,设nextstat当前值为100)while A<C do if A<0 then A:=A+1 else A:=A+2六、用基本块代码生成算法生成目标代码。
编译原理试题及答案(期末复习版)
![编译原理试题及答案(期末复习版)](https://img.taocdn.com/s3/m/ea7d241aa76e58fafab0038c.png)
<编译原理>历年试题及答案一.(每项选择2分,共20分)选择题1.将编译程序分成若干个“遍”是为了_b__。
a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率2.构造编译程序应掌握__d__。
a.源程序b.目标语言c.编译方法d.以上三项都是3.变量应当c_。
a.持有左值b.持有右值c.既持有左值又持有右值d.既不持有左值也不持有右值4.编译程序绝大多数时间花在_d___上。
a.出错处理b.词法分析c.目标代码生成d.管理表格5.词法分析器的输出结果是_c___。
a.单词的种别编码b.单词在符号表中的位置c.单词的种别编码和自身值d.单词自身值6.正规式MI和M2等价是指__c__。
a.MI和M2的状态数相等b.Ml和M2的有向弧条数相等。
C.M1和M2所识别的语言集相等 d.Ml和M2状态数和有向弧条数相等7.中间代码生成时所依据的是—c。
a.语法规则b.词法规则c.语义规则d.等价变换规则8.后缀式ab+cd+/可用表达式__b_来表示。
a.a+b/c+d b.(a+b)/(c+d)c.a+b/(c+d)d.a+b+c/d9.程序所需的数据空间在程序运行前就可确定,称为____c__管理技术。
a.动态存储b.栈式存储c.静态存储d.堆式存储10.堆式动态分配申请和释放存储空间遵守___d_____原则。
a.先请先放b.先请后放c.后请先放d.任意二(每小题10分,共80分)简答题1.画出编译程序的总体结构图,简述各部分的主要功能。
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|aL→L,S|S(1)消除左递归和回溯;(2)计算每个非终结符的FIRST和FOLLOW;(3)构造预测分析表。
最新《编译原理》模拟期末试题汇总-6套-含答案资料
![最新《编译原理》模拟期末试题汇总-6套-含答案资料](https://img.taocdn.com/s3/m/77d4c3521ed9ad51f11df212.png)
《编译原理》模拟试题一一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.计算机高级语言翻译成低级语言只有解释一种方式。
(×)2.在编译中进行语法检查的目的是为了发现程序中所有错误。
(×)3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
(√ )4.正则文法其产生式为 A->a , A->Bb, A,B∈VN , a 、b∈VT 。
(×)5.每个文法都能改写为 LL(1) 文法。
(√)6.递归下降法允许任一非终极符是直接左递归的。
(√)7.算符优先关系表不一定存在对应的优先函数。
(×)8.自底而上语法分析方法的主要问题是候选式的选择。
(×)9.LR 法是自顶向下语法分析方法。
(×)10.简单优先文法允许任意两个产生式具有相同右部。
(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.一个编译程序中,不仅包含词法分析,_____,中间代码生成,代码优化,目标代码生成等五个部分。
A.( ) 语法分析B.( )文法分析C.( )语言分析D.( )解释分析2.词法分析器用于识别_____。
A.( ) 字符串B.( )语句C.( )单词 D.( )标识符3.语法分析器则可以发现源程序中的_____。
A.( ) 语义错误 B.( ) 语法和语义错误C.( ) 错误并校正D.( ) 语法错误4.下面关于解释程序的描述正确的是_____。
(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于 COBOL 和 FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的A.( ) (1)(2) B.( ) (1)C.( ) (1)(2)(3) D.( ) (2)(3) 5.解释程序处理语言时 , 大多数采用的是_____方法。
《编译原理》模拟期末试题汇总 6套,含答案
![《编译原理》模拟期末试题汇总 6套,含答案](https://img.taocdn.com/s3/m/cb2f690fc381e53a580216fc700abb68a982adc0.png)
《编译原理》模拟期末试题汇总 6套,含答案《编译原理》模拟期末试题汇总6套,含答案《编译原理》模拟试题1一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.计算机高级语言翻译成低级语言只有解释一种方式。
(×)2.在编译中进行语法检查的目的是为了发现程序中所有错误。
(×)3.机器a上的编译器直接用于机器B的必要条件是机器a和机器B的操作系统功能相同。
(√)4.正则文法其产生式为a->a,a->bb,a,b∈vn,a、b∈vt。
(×)5.每个文法都能改写为ll(1)文法。
(√)6.递归下降法允许任何非最终字符直接左递归。
(√)7.操作员优先级关系表不一定有相应的优先级函数。
( ×)8. 自下而上语法分析的主要问题是选择候选者。
( ×)9. LR方法是一种自上而下的语法分析方法。
( ×)10.简单优先文法允许任意两个产生式具有相同右部。
(×)二、多项选择题(请在第一个括号中选择最准确的项目作为答案,勾选,并犯更多错误)(每个4分,总共40分)一.一个编译程序中,不仅包含词法分析,_____,中间代码生成,代码优化,目标代码生成等五个部分。
a、语法分析语法分析语言分析口译分析2。
词法分析器用于识别_;。
a、()字符串B.()语句C.()单词D.()标识符3。
解析器可以在源程序中找到。
a、语法和语义错误C.错误和纠正D.语法错误4。
以下对口译员的描述是正确的。
(1)解释程序的特点是处理程序时不产生目标代码(2)解释程序适用于cobol和fortran语言(3)解释器是为了打开编译技术的死锁而开发的a.()(1)(2)b.()(1)c.()(1)(2)(3)d.()(2)(3)5.解释程序处理语言时,大多数采用的是_____方法。
a.()源程序命令被逐个直接解释执行b.()先将源程序转化为中间代码,再解释执行c、()首先将源程序解释翻译成目标程序,然后执行D。
编译原理考试题及答案
![编译原理考试题及答案](https://img.taocdn.com/s3/m/b96a235266ec102de2bd960590c69ec3d5bbdbcc.png)
编译原理考试题及答案一、选择题(每题2分,共20分)1. 编译器的主要功能是将高级语言源程序转换成机器语言目标程序。
(对/错)答案:对2. 编译过程中,词法分析器的主要任务是识别源程序中的各种词法单位。
(对/错)答案:对3. 在语法分析阶段,编译器使用的数据结构是栈。
(对/错)答案:错4. 语义分析的主要目的是检查程序的语法结构是否正确。
(对/错)答案:错5. 编译器的优化阶段可以提高目标程序的执行效率。
(对/错)答案:对6. 编译器的代码生成阶段负责将中间代码转换为目标代码。
(对/错)答案:对7. 编译器的运行时系统包括内存管理、输入输出处理等功能。
(对/错)答案:对8. 编译器的前端主要负责源程序的分析,后端负责目标代码的生成。
(对/错)答案:对9. 编译器的词法分析阶段不涉及对标识符的识别。
(对/错)答案:错10. 编译器的语法分析阶段可以识别出所有的语法错误。
(对/错)答案:对二、填空题(每题2分,共20分)1. 编译器在进行语法分析时,通常采用________算法。
答案:LL(1)或LR(1)2. 编译器在语义分析阶段,需要对变量的________进行检查。
答案:作用域和生命周期3. 编译器在代码优化阶段,常用的优化技术包括________和循环优化。
答案:常量传播4. 编译器在目标代码生成阶段,需要考虑________的约束。
答案:目标机器5. 编译器的运行时系统包括________、内存管理、输入输出处理等。
答案:程序启动和异常处理6. 编译器在词法分析阶段,需要识别的词法单位包括________、标识符、常量等。
答案:关键字7. 编译器在语法分析阶段,使用的分析表可以是________表或ACTION 表。
答案:GOTO8. 编译器在语义分析阶段,需要对表达式的________进行计算。
答案:类型9. 编译器的代码生成阶段,需要将中间代码转换为________代码。
答案:目标机器10. 编译器的运行时系统在内存管理中,需要处理________和垃圾收集。
编译原理模拟试题四.doc
![编译原理模拟试题四.doc](https://img.taocdn.com/s3/m/1b0b114e195f312b3169a5b5.png)
编译原理模拟试题四一、是非题(下列各题,你认为正确的,请在题干的括号内打“√”,错的打“×”。
每题1分,共5分)1、算符优先关系表不一定存在对应的优先函数。
T2、数组元素的地址计算与数组的存储方式有关。
T3、仅考虑一个基本块,不能确定一个赋值是否真是无用的。
T4、每个文法都能改写为LL(1)文法。
F5、对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。
F二、填空题(每题2分,共20分)1、从功能上说,程序语言的语句大体可分为_______语句和______语句两大类。
2、扫描器的任务是从________中识别出一个个_______。
3、所谓最右推导是指:_______。
4、语法分析最常用的两类方法是________和_________分析法。
5、一个上下文无关文法所含四个组成部分是_______________。
6、所谓语法制导翻译方法是_____________________。
7、符号表中的信息栏中登记了每个名字的有关的性质,如_________等等。
8、一个过程相应的DISPLAY表的内容为________。
9、常用的两种动态存贮分配办法是_____动态分配和_____动态分配。
10、产生式是用于定义_____的一种书写规则。
5、答:优化:对程序进行各种等价变换,使得从变换后的程序出发,能产生更有效的目标代码。
(2分)三种级别:局部优化、循环优化、全局优化。
(2分)6、答:目标代码通常采用三种形式:机器语言,汇编语言,待装配机器语言模块。
(2分)应着重考虑的问题:(1)如何使生成的目标代码较短;(2)如何充分利用寄存器,以减少访问内存次数;(3)如何充分利用指仅系统的的特点。
(2分)三、名词解释(每题2分,共10分)1、遍2、无环路有向图(DAG)3、语法分析4、短语5、后缀式四、简述题(每题4分,共24分)1、考虑下面程序…………Var a:integer;Procedure S(X);Var X:integer;Begina:=a+1;X:=a+XEnd;Begina:=5;S(a);Print(a)End.试问:若参数传递方式分别采取传名和传值时,程序执行后输出a的值是什么?2、画出Pascal中实数(不带正负号,可带指数部分)的状态转换图。
编译原理模拟试题
![编译原理模拟试题](https://img.taocdn.com/s3/m/153dbcbfb9f3f90f76c61ba2.png)
《编译原理》期末模拟试题及答案一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。
(×)2.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
(× )3.递归下降分析法是自顶向上分析方法。
(√ )4.产生式是用于定义词法成分的一种书写规则。
(×)5.LR 法是自顶向下语法分析方法。
(√ )6.在SLR (1 )分析法的名称中,S的含义是简单的。
(√)7.综合属性是用于“ 自上而下” 传递信息。
(× )8.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占单元大小、地址等等。
(×)9.程序语言的语言处理程序是一种应用软件。
(×)10.解释程序适用于COBOL 和FORTRAN 语言。
(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.文法G 产生的_____的全体是该文法描述的语言。
A.( ) 句型B.( ) 终结符集C.( ) 非终结符集D.( ) 句子2.若文法G 定义的语言是无限集,则文法必然是_____。
A.( ) 递归的B.( ) 前后文无关的C.( ) 二义性的D.( ) 无二义性的3.四种形式语言文法中,1型文法又称为_____文法。
A.( ) 短语结构文法B.( ) 前后文无关文法C.( ) 前后文有关文法D.( ) 正规文法4.一个文法所描述的语言是_____。
A.( ) 唯一的B.( ) 不唯一的C.( ) 可能唯一,好可能不唯一D.( ) 都不对5._____和代码优化部分不是每个编译程序都必需的。
A.( ) 语法分析B.( ) 中间代码生成C.( ) 词法分析D.( ) 目标代码生成6._____是两类程序语言处理程序。
编译原理试题及答案
![编译原理试题及答案](https://img.taocdn.com/s3/m/822c209209a1284ac850ad02de80d4d8d05a0100.png)
编译原理试题及答案一、选择题1. 编译器的主要功能是什么?A. 代码优化B. 语法分析C. 代码生成D. 所有以上选项答案:D2. 下列哪个阶段属于编译过程的前端?A. 语法分析B. 代码生成C. 运行时库链接D. 目标代码优化答案:A3. 在编译原理中,什么是“产生式系统”?A. 一种编程语言的规范B. 一种用于描述语法的系统C. 一种代码优化技术D. 一种代码生成方法答案:B4. 以下哪个是自顶向下的语法分析方法?A. LR分析B. LALR分析C. LL分析D. CYK算法答案:C5. 在编译器的哪个阶段会进行类型检查?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:C二、填空题1. 编译器在进行________时,会识别源代码中的各种标识符、常量、运算符等,并将其转换成相应的符号。
答案:词法分析2. 在编译原理中,________图是一种用于描述程序执行过程中变量状态的图,它以节点表示变量的值,以有向边表示程序的控制流。
答案:控制流3. 语法分析的主要任务是根据________规则来分析和构建源程序的语法结构。
答案:语法4. 在编译过程中,________是将源程序中的高级表示转换为机器语言或中间代码的过程。
答案:代码生成5. 编译器的________阶段负责将优化后的代码转换为目标机器可执行的指令序列。
答案:目标代码生成三、简答题1. 简述编译器的一般工作流程。
答:编译器的一般工作流程包括以下几个阶段:首先是词法分析,将源代码文本分解成一系列的记号;其次是语法分析,根据语言的语法规则构建抽象语法树;接着是语义分析,检查源代码的语义正确性并进行类型检查;然后是中间代码生成,将抽象语法树转换为中间表示形式;之后是代码优化,对中间代码进行各种优化以提高效率;最后是代码生成,将优化后的中间代码转换为目标机器的机器代码。
2. 描述自顶向下和自底向上语法分析方法的主要区别。
答:自顶向下的语法分析方法从开始符号开始,尝试将输入的记号序列归约为语法中的产生式规则,直到得到完整的抽象语法树。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆明理工大学试卷(A )
考试科目:编译原理考试日期:命题教师:集体
学院:专业班级:学生姓名:学号:
任课教师:上课班级:考试座位号:
一、填空(每空1分,共20分)
1、计算机执行用高级语言编写的程序主要有两种途径:___解释__和__编译___。
2、如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义性的。
3、扫描器的任务是从源程序中中识别出一个个单词符号。
4、语法分析器的输入是单词符号,其输出是语法单位。
5、规范规约中的可归约串是句柄
6、对于文法G1和G2,若有L(G1)=L(G2) (或,则称文法G1
和G2是等价的。
7、最右推导的逆过程称为规范归约,也称为最左归约。
8、自上而下分析法采用___移进__、归约、错误处理、___接受__等四种操作。
9、语法分析的方法大致可分为两类,一类是自上而下分析法,另一类是自下而上分析法。
10、2型文法又称为上下文无关文法;3型文法又称为正则文法。
11、表达式式_a/(b-c)所代表的逆波兰表达式是___ abc-/_。
12、对于文法G,仅含终结符号的句型称为句子。
二、单项选择题(每题2分,共20分)
1、词法分析器的输出结果是()。
A.单词的种别编码B.单词在符号表中的位置
C.单词的种别编码和自身值D.单词自身值
2、3.一个句型中称为句柄的是该句型的最左()。
A.非终结符号B.短语C.句子D.直接短语
3、下推自动机识别的语言是()。
A.0型语言B.1型语言
C.2型语言D.3型语言
4、()型文法也称为正规文法。
A 0
B 1
C 2
D 3
5、采用自上而下分析,必须()。
A.消除左递归B.消除右递归
C.消除回溯D.提取公共左因子
6、设有文法G[I]: I→I1|I0|Ia|Ic|a|bc下列符号串中是该文法的句子有()。
(1) ab0 (2) a0c01 (3) aaa (4) bc10
A. (1)
B. (2)(3)(4)
C. (3)(4)
D. (1)(2)(3)(4)
7、正则集合L={a n|n≥0}相应的正则表达式是()
A.a* B.a+ C.aa* D.aa+
8、在自上而下的语法分析中可能引起回溯的产生式是()。
A S→aAc|(T)
B T→ab|cD|fG
C A→aB|af
D B→cB|dG
9、若文法 G 定义的语言是无限集,则文法必然是______:
A .递归的
B 前后文无关的
C 二义性的
D 无二义性的
10、文法 G 产生的()的全体是该文法描述的语言。
A .句型 B. 终结符集 C. 非终结符集 D. 句子
三、(10分)对于文法G[E]:
E→E+T|E-T|T
T→T*F|T/F|F
F→(E)|i
(1)写出句型(F+i)-T*(E-T)的最右推导并画出语法树。
(2)写出上述句型的短语,直接短语和句柄。
四、(11
a Array
五、(15分) 对文法
G[S]: S→S,T|(T)|a
T→a(b)|a
(1) 消除该文法的左递归和提取左公因子;
(2) 求出文法改写后的各非终结符的FIRST和FOLLOW集合;
(3) 判断该文法是否是LL(1)文法。
如果不是,说明理由;如果是,构造该文法的LL(1)分析表。
六、(20分)构造文法G[S]:
S->A|Ab| a
(1) 构造该文法识别全部活前缀的DFA或LR(0)项目集规范族;
(2) 判断该文法是否是SLR(1)文法。
如果不是,说明理由;如果是,构造该文法的SLR(1)分析表。
(p177 4-35 (4))
七、(4分)将将赋值语句x:= A*(B+C)+D翻译成四元式。
(p254 5-8(1))。