2008~2009学年度第二学期《编译原理》考试试卷-A
编译原理期末考试试卷A卷
试卷答题时限:120 分钟考试形式:闭卷笔试一、单项选择题(请从4个备选答案中选择最适合的一项,每小题2分,共20注意:须将本题答案写在下面的表格中,写在其它地方无效1. 编译程序是对()A. 汇编程序的翻译B。
高级语言程序的解释执行C. 机器语言的执行D. 高级语言的翻译2。
词法分析器的输出结果是()A.单词的种别编码B.单词在符号表中的位置C.单词的种别编码和自身值D.单词自身值3.在规范规约中,用()来刻画可规约串.A.直接短语B.句柄C.最左素短语D.素短语4。
与正规式(a* |b)*(c |d)等价的正规式是()A.a*(c |d)|b(c |d) B.a*(c |d) * | b(c |d)*C.a*(c | d)| b*(c |d) D.(a | b) * c|(a |b)*d5. 若项目集I K含有A→α·,则在状态K时,仅当面临输入符号a∈FOLLOW(A)时,才采取A→α·动作的一定是()A.LALR文法B.LR(0) 文法C.LR(1)文法D.SLR(1)文法6。
四元式之间的联系是通过()实现的。
A. 指示器B。
临时变量C。
符号表D. 程序变量7.文法G:S → x Sx|y所识别的语言是()A.xyx B.(xyx)*C.x n yx n(n≥0)D.x*yx*8.有一语法制导翻译如下所示:S → b Ab {print “1”}A→(B {print “2”}A→a {print “3"}B→Aa) {print “4”}若输入序列为b(((aa)a)a)b,且采用自下而上的分析方法,则输出序列为()A.32224441 B. 34242421 C.12424243 D。
344422129.关于必经结点的二元关系,下列叙述不正确的是( )A.满足自反性B.满足传递性C.满足反对称型D.满足对称性10.错误的局部化是指()。
A.把错误理解成局部的错误B.对错误在局部范围内进行纠正C.当发现错误时,跳过错误所在的语法单位继续分析下去D.当发现错误时立即停止编译,待用户改正错误后再继续编译1分,共5分)1.文法G的一个句子对应于多个推导,则G是二义性的。
编译原理期末考试试题及答案
编译原理期末考试试题及答案一、选择题(每题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. 静态作用域规则是指变量的作用域在编译时确定,而动态作用域规则是指变量的作用域在运行时确定。
大学课程《编译原理》考试试卷A卷及答案
《编译原理》考试试卷A适用专业:考试日期:闭卷所需时间:120分钟总分:100分一、填空题:(每空1分,共10分)1.解释系统与编译系统的区别在于和。
2.在编译过程中始终伴随着管理和出错处理过程。
3.语法分析的方法为和两大类。
4.LL(1)文法中不能有和。
5.词法分析器中单词的描述工具是 ,单词的识别工具。
6.算符优先语法分析,在符号栈栈顶出现时,进行规约处理。
二、单选题(每小题2分,共10分)1.词法分析器的加工对象是()A.中间代码B.单词C.源程序D.元程序2.同正则表达式a*b*等价的文法是()A. G1:S→aS|bS|εB. G2: S→aSb|εC. G3:S→aS|Sb|εD. G4: S→abS|ε3.文法G[A]:A→bH H→BA B→Ab H→a 不是()A. 2型文法B. 3型文法C. 0型文法D.1型文法4.算符优先分析每次都是对()进行规约。
A.短语B.最左素短语C.素短语D.句柄5.( )不是DFA的成分。
A.有穷字母表B. 初始状态集合C.终止状态集合D.有限状态集合三、问答题(第1,5小题每题15分,其余每小题10分,共80分)1. (15分)解释下列术语:(1)编译程序(2)句柄(3)上下文无关文法2.编译程序主要有哪些构成成分?(10分)3.给出描述语言L={a n b2n c m|n,m≥0}的cfg。
(10分)4.(10分)将下图中的DFA M最小化。
5. (15分)判断文法G[S]:S→aHH→aMd|dM→Ab|εA→aM|e是否为LL(1)文法?给出判断过程。
6. (10分)改写文法G[E]:E → E+T|TT →T*F|FF →(E)| a为无左递归文法。
7. (10分)已知文法G[S]为:S→VV→T|ViTT→F|T+FF→)V*|(请指出句型(+(i( 规范推到,并指出句型F+Fi( 中的短语、句柄和素短语。
《编译原理》考试试卷A参考答案适用专业:考试日期:闭卷所需时间:120分钟总分:100分一、填空题:(每空1分,共10分)1. 边翻译边执行和不生成目标代码。
编译原理期末考试试卷及答案
期末考试试卷(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、同心集合并有可能产生新的()冲突。
编译原理期末考试题目及答案
一、填空题(每空2分,共20分)1.编译程序首先要识别出源程序中每个单词,然后再分析每个句子并翻译其意义。
2.编译器常用的语法分析方法有自底向上和自顶向下两种。
3.通常把编译过程分为分析前端与综合后端两大阶段。
词法、语法和语义分析是对源程序的分析,中间代码生成、代码优化与目标代码的生成则是对源程序的综合。
4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即静态存储分配方案和动态存储分配方案。
5.对编译程序而言,输入数据是源程序,输出结果是目标程序。
1.计算机执行用高级语言编写的程序主要有两种途径:解释和编译。
2.扫描器是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。
3.自下而上分析法采用移进、归约、错误处理、接受等四种操作。
4.一个LL(1)分析程序需要用到一张分析表和符号栈。
5.后缀式abc-/所代表的表达式是a/(b-c)。
二、单项选择题(每小题2分,共20分)1.词法分析器的输出结果是__C。
A.单词的种别编码B.单词在符号表中的位置C.单词的种别编码和自身值D.单词自身值2.正规式M 1 和M 2 等价是指__C_。
A.M1和M2的状态数相等 B.M1和M2的有向边条数相等C.M1和M2所识别的语言集相等D.M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是_C____。
A.xyx B.(xyx)* C.xnyxn(n≥0) D.x*yx*4.如果文法G是无二义的,则它的任何句子α_A____。
A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握____D__。
A.源程序B.目标语言C.编译方法D.以上三项都是6.四元式之间的联系是通过__B___实现的。
编译原理考试题及答案
编译原理考试题及答案一、选择题(每题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. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。
《编译原理》期末考试题库含答案.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. _________________________________________ 解释程序处理语言时,大多数采用的是 ___________________________________ 方法。
西邮《编译原理》考试试卷-附带参考答案
西安邮电学院2007 —2008 学年第二学期《编译原理》课程期中考试卷(A)考核形式:闭卷班级:姓名:学号:一、填空题(30分,每空2分)1.由文法开始符号经0步或多步推导产生的文法符号序列是__句型__。
2.编译器通常经历___词法分析______、____语法分析_______、__语义分析和中间代码生成___、____优化___、__目标代码生成___等几个阶段;其中第一个阶段是以__源程序__为输入,_单词符号_为输出;最后一阶段是以_中间代码_为输入,_机器语言程序或汇编语言程序__为输出。
同时_表格管理_和_出错处理_贯穿编译器的各个阶段。
3.解释器与编译器的主要区别是:____编译程序生成目标代码,而解释程序不生成目标代码____。
4.高级语言到低级语言的翻译过程称为__编译__。
汇编语言到机器语言的翻译过程称为__汇编__。
二、单项选择题(20分,每小题2分)1.正规表达式(ε|a|b)2表示的集合是( D )。
A.{ε,ab,ba,aa,bb} B.{ab,ba,aa,bb}C.{a,b,ab,aa,ba,bb} D.{ε,a,b,aa,bb,ab,ba}2.分析树的内部结点仅由(C )组成。
A.开始符号和非终结符号B.终结符号和非终结符号C.非终结符号D.终结符号3.文法S→(L)|aL→L,S|S 的终结符号是(C)。
A.S B.S L C.a , ( ) D.a , ( ) |4.NFA M所识别的语言是( D )。
A.0型语言B.上下文有关语言C.上下文无关语言D.正规语言5.同正规式a*b*等价的文法是(C )。
A.S→aS|bS|εB.S→aSb|εC.S→aS|Sb|εD.S→abS|ε6.对LR分析表的构造,不可能存在( C )动作冲突。
A.移进/归约B.归约/归约C.移进/移进 D.以上都不对7.LR分析模式中,改变格局变化的动作不包括( B )。
A.移进B.匹配终结符C.归约D.接受8.如果一个文法G是二义文法,则必存在某个句子X∈L(G),该句子()。
《编译原理》样卷及答案
一、简答题(每题4分,共24分)1、构造一个文法G,使得:L(G)={(m )m|m>0}解答:G[S]: s-> ()|(S)2、构造一个正规式,它接受 ={0,1}上符合以下规则的字符串:串内有且只有2个1的0、1字符串全体。
解答:0*10*10*3、消除文法G[S]中的直接左递归和回溯S→(L) | aS | aL→L,S | S解答:S→(L) | aS'S'→S | εL→S L'L'→,S L' | ε4、文法G[S]是乔姆斯基几型文法?S → ABS | ABAB → BAA → 0B → 1解答:1型文法/上下文有关文法5、按Thmopson算法构造与正则表达式(1*|0) * 等价的NFA。
解答:略6、设计一个状态转换图,其描述的语言规则为:如果以a开头,则其后是由a、b组成的任意符号串;如果以b开头,则其后是至少包含一个a的由a、b组成的任意符号串。
解答:略二、(本题10分)对于文法G[E]:E→ET+|TT→TF* | FF→F^ | a(1) 给出句子FF^^*的最左推导和语法树;(2) 给出句子FF^^*的短语、直接短语和句柄。
解答: (1) 2分:句子FF^^*的最左推导 2分:句子FF^^*的语法树E=>T=>TF*=>FF*=>FF^*=>FF^^*(2) 3分:句子FF^^*的短语FF^^*、FF^^*、F、F^、F^^2分:句子FF^^*的直接短语F、F^1分:句子FF^^*的句柄F三、(本题15分)构造与下列NFA等价的最小化DFA。
解答:(1)10分:构造与NFA等价的DFA(2)5分:对DFA最小化首先,将所有的状态集合分成子集: k1={0,1,2,4} k2={3,5}四、(本题15分)对下列文法G[S]:s→ eT | RTT→ DR | εR→ dR | εD→ a | bd(1) 写出文法G[S]每个非终结符的FIRST集和FOLLOW集;(2) 判断文法G[S]是否LL(1)文法(注:必须给出判断过程,否则不得分);(3) 写出文法文法G[S]的预测分析表。
编译原理试卷(A)--2008
二、选择题(每题3分,共30分)1、下列哪个程序不是编译程序的组成部分?____________A、词法分析程序B、代码读入程序C、代码生成程序D、语法分析程序2、正规式M1和M2等价是指__________。
A、M1和M2的状态数相等 B、M1和M2的有向边条数相等C、M1和M2所识别的语言集相等 D、M1和M2的状态数和有向边条数相等3、_________不是NFA的成分。
A、有穷字母表B、唯一的初始状态C、终止状态集合D、有限状态集合4、设∑={0,1},则∑上所有以1开头,后跟若干个010的字的集合对应的正规式为________。
A.1(010)* B.1(010)+ C.(010)*1 D.(010)+15、已知文法G(S) {S→AB,A→0A1|ε,B→1B0|ε},则以下符号串中,能成为短语的是________。
A.010101 B. 0101 C. 0110 D.10016、一个________指明了在分析过程中的某时刻所能看到的产生式多大一部分。
A.活前缀B.前缀C.项目D.项目集7、LL(1)文法的条件是______。
A.对形如U->Xl|X2|…|Xn的规则,要求FIRST(Xi)∩FIRST(Xj)=Φ,(i≠j)B.对形如U->Xl|X2|…|Xn的规则,若Xi=>*ε,则要求FIRST(Xj)∩FOLLOW(U)=ΦC.a和bD.都不是8、已知文法G[E]E->TE'E'->+TE'|εT->FT'T'->*FT'|εF一(E)|idFOLLOW(F)=______A.{*,+}B. {#,)} C.{+,#,)} D.{*,+,#,)}9、语法制导的翻译程序能同时进行__________和语义分析。
A、词法分析B、语法分析C、优化D、目标代码生成10、在LR 分析法中,分析栈中存放的状态是识别规范句型_____的DFA 状态。
编译原理(A卷)答案
湖北第二师范学院2014-2015学年度第二学期《编译原理》课程考试答案(A卷) 院系:计算机学院专业班级:学生姓名:学号:考试方式:闭卷………………………………………………………………………………………………………………一、填空题(每空1分,共10分)1.词法分析程序是逐个识别(字符),形成单词级别的(字符)串,词法分析程序输出的数据是(2 )个,它们分别是(种别编码)和(自身值)。
2.语法分析程序是逐个识别(单词),形成语句级别的(单词)串。
3.一遍扫描的编译方法,是以语法分析程序为主,调用(词法分析)程序、语义分析程序,再由语义程序调用中间代码生成、中间代码优化等。
4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即(静态存储分配)方案和(动态存储分配)方案。
二、综合题(共90分)1.(5分)将下面文法改写成3型文法:G=({S,A,B},{a,b,c,d,e},P,S)其中:P={S→abcA|edB,A→beB,B→d}答案:改写后的3型文法是(5分)G=({S,A,B,C,D,E,F},{a,b,c,d,e},P,S)其中:P={S→aC|eF, C→bD,D→cA,A→bE,E→eB,F→dB,B→d}2.(5分)给出下面表达式的四元式形式:a*b+(c-d)/e答案:四元式形式(5分)(*,a,b,t1)(-,c,d,t2)(/,t2,e,t3)(+,t1,t3,t4)3.(30分)给定文法 G[E] :E → E+T | E-T | TT → T*F | T/F | FF → (E) | i该文法是 LL(1) 文法吗?为什么?不是的能否改造为LL(1)文法,如果能够改造,给出改造后的文法,并给出改造后文法是LL(1)文法的证明过程。
无论改造前还是改造后的文法,如果是LL(1)文法,则给出(i+i)*i的分析过程(要求给出详细过程,并给出LL(1)的分析表)答案:(1)该文法不是LL(1)文法,因为文法的产生式含有左递归(2分)(2)该文法可改造为LL(1)文法,即消除左递归,改造后的文法是(3分)E → TE’E’→ +TE’ | -TE’ | εT → FT’T’→ *FT’ | /FT’ |εF → (E) | i证明改造后的文法是LL(1)文法的过程A.求可达ε的非终结符(1分)可达的是E’,T’B.求每个非终结符的First集合(3分)First(E)={ (,i}First(E’)={+,-}First(T)={ (,i}First(T’)={*,/}First(F)={ (,i}C.求每个产生式右部字符串的First集合(3分)First(TE’)={ (,i}First(+TE’)={+}First(-TE’)={-}First(FT’)={ (,i}First(*FT’)={*}First(/FT’)={/}First((E))={ ( }First(i)={ i }First(ε)={ ε}D.求每个非终结符的Follow集合(3分)Follow(E)={$,)}Follow(E’)= Follow(E)={$,)}Follow(T)=First(E’) ∪ Follow(E)={$,+,-,)}Follow(T’)= Follow(T)={$,+,-,)}Follow(F)= First(T’) ∪ Follow(T)={$,+,-, *,/,)}E.求每个非终结符的Select集合(5分)Select(E → TE’)=First(TE’)={ (,i }Select(E’→ +TE’)=First(+TE’)={ + }Select(E’→ -TE’)=First(-TE’)={ - }Select(E’→ε)=First(ε)-{ ε} ∪ Follow(E’)={ $,) }Select(T → FT’)=First(FT’)={ (,i }Select(T’→ *FT’)=First(*FT’)={ * }Select(T’→ /FT’)=First(/FT’)={ / }Select(T’→ε)=First(ε)-{ ε} ∪ Follow(T’)={ $,+,-,) }Select(F → (E))=First((E))={ ( }Select(F → i)=First(TE’)={ i }F.求有多个产生式的非终结符Select集合的交集(2分)显然有Select(E’→ +TE’)∩Select(E’→ -TE’) ∩Select(E’→ε)=ΦSelect(T’→ *FT’) ∩Select(T’→ /FT’) ∩Select(T’→ε)= ΦSelect(F → (E))= ∩Select(F → i)= Φ所以改造后的文法是LL(1)文法4.(10分)对下面的NFA进行确定化答题:第1第25.(15分)给定文法 G[E] :E → E+T | E-T | TT → T*F | T/F | F该文法是算符优先文法吗?是,则构造该文法的算符优先关系矩阵,并给出(i+i)*i的分析过程(要求给出详细过程)答案:(1)该文法是算符优先文法(1分)(2)构造该文法的算符优先矩阵A.求各非终结符的FirstVT集合(3分)FirstVT(E)={+,-,*,/,(,i}FirstVT(T)={*,/,(,i}FirstVT(F)={(,i}B.求各非终结符的LasttVT集合(3分)LastVT(E)={ +,-,*,/,),i }LastVT(T)={ *,/,),i }LastVT(F)={ ),i }C.构造优先关系表(4分)6.(25分)给定文法 G[E] :T → T*F | FF → (E) | i该文法是LR(0)文法吗?是,则构造该文法的LR(0)分析表,并给出(i+i)*i的分析过程,不是的,是SLR(1)文法吗,是,则构造该文法的SLR(1)分析表,并给出(i+i)*i的分析过程。
编译原理试卷A(含答案)
I10:
T’→, ST·
T
I11:
T →ST’·
不存在项目冲突:
Follow(S’) = {#}
Follow(S) = {, ,),#}
Follow(T) = {)}
Follow(T’) = {)}
构造SLR分析表:
状态
ACTION
GOTO
a
∧
(
)
,
#
S
T
T’
0
S2
A→a|b|,
FIRST(S)等于(A)
a){a,b}b) {a,b,c}c){c}d){a,b,}
(8)某翻译器依如下翻译模式设计,其基础文法可由开始符号S产生一个二进制数。
S→L{ print(L.val); }/*print函数以10进制方式打印数值*/
L→L1B{L.val = L1.val*2 + B.val; }
11.T → ·ST’
12.T →S·T’
13.T →ST’·
14.T → ·
15.T’→·,ST’
16.T’→,·ST’
17.T’→,S·T’
18.T’→,ST’·
构造SLR项目集规范族:
I0: S I1:∧I3:∧
S’→ ·S S’4:
答:
(1)S→a|∧|(T)
TST’
T’,ST’|e
(2)
该文法不含左递归
First(S) = { a,∧,( }
First(T) = {a,∧,( }
First(T’) = {, , e}
Follow(S) = {, ,),#}
Follow(T) = {)}
Follow(T’) = {)}
编译原理2009(A)试卷以及参考答案
三、判断题.(10分,每小题2分;对用√、错用×表示)
1.一个句型中的最左素短语称为该句型的句柄。
2.左线性文法一定是二型(上下文无关)文法。
3.对任何一个正规集L,都有一正规表达式r,满足L(r)=L。
4.解释程序和编译程序一样,生成目标代码。
5.算符优先关系表不一定存在对应的优先函数。
A.存在一个B.不存在任何C.无法判断
8.()这样一些语言,它们能被确定的有穷自动机识别,但不能用正规式表示。
A.存在B.不存在C.无法判断是否存在
9.LL(1)文法的条件是()
A.对形如U->x1 | x2 | … | xn的规则,要求FIRST(xi)∩FIRST(xj)=φ,(i≠j)
B.对形如U->x1 | x2 | … | xn的规则,若xi═>*ε,则要求FIRST(xj)∩FOLLOW(U)=φ
A.自左至右B.自顶向下C.自底向上D.自右至左
二、填空题(20分、每空2分)
1.文法G产生的的全体是该文法描述的语言。
2.在使用高级语言编程时,首先可通过编译程序发现源程序的全部语法错误和部分错误。
3.优化根据所涉及程序的范围,可分为局部优化,和全局优化。
4.最右推导也称为推导。
5.文法G[Z]:Z->Ab , A->Za |ε该文法对应的正则表达式为.
下列符号串中是该文法的句子有()
(1)ab0(2)a0c01(3)aaa(4)bc10
可选项有:
A.(1) B.(2)(3)(4)C.(3) (4) D.(1)(2)(3)(4)
6.编译原理是对()。
A、机器语言的执行B、汇编语言的翻译
《编译原理》考试试题及答案(汇总)
《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个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.构造编译程序应掌握______。
编译原理试题及答案
华中科技大学武昌分校《编译原理》试卷A专业班级:_________学号:_________姓名:__________总分一、单项选择题(共10小题,每小题2分) (题分 20分)1.语言是A .句子的集合B .产生式的集合C .符号串的集合D .句型的集合 2.编译程序前三个阶段完成的工作是 A .词法分析、语法分析和代码优化 B .代码生成、代码优化和词法分析C .词法分析、语法分析、语义分析和中间代码生成D .词法分析、语法分析和代码优化3.一个句型中称为句柄的是该句型的最左A .非终结符号B .短语C .句子D .直接短语 4.下推自动机识别的语言是A .0型语言B .1型语言C .2型语言D .3型语言5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即A . 字符B .单词C .句子D .句型 6.对应Chomsky 四种文法的四种语言之间的关系是 A .L 0⊂L 1⊂L 2⊂L 3 B .L 3⊂L 2⊂L 1⊂L 0 C .L 3=L 2⊂L 1⊂L 0 D .L 0⊂L 1⊂L 2=L 3 7.词法分析的任务是A .识别单词B .分析句子的含义C .识别句子D .生成目标代码 8.常用的中间代码形式不含A .三元式B .四元式C .逆波兰式D .语法树 9. 代码优化的目的是A .节省时间B .节省空间C .节省时间和空间D .把编译程序进行等价交换装 订 线得分10.代码生成阶段的主要任务是 A .把高级语言翻译成汇编语言B .把高级语言翻译成机器语言C .把中间代码变换成依赖具体机器的目标代码D .把汇编语言翻译成机器语言二、填空题(本大题共5小题,每小题2分)(题分 10分)1.编译程序首先要识别出源程序中每个( ),然后再分析每个( )并翻译其意义。
2.编译器常用的语法分析方法有( )和( )两种。
3.通常把编译过程分为分析前端与综合后端两大阶段。
《编译原理》考试试题及答案(汇总)
编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划",错误的划X)(每个2分,共20分)1 .编译程序是对高级语言程序的解释执行。
(x )2. —个有限状态自动机中,有且仅有一个唯一的终态。
(X)3. —个算符优先文法可能不存在算符优先函数与之对应。
(V )4. 语法分析时必须先消除文法中的左递归。
(x)5. 分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
( V)6. 逆波兰表示法表示表达式时无须使用括号。
(V )7. 静态数组的存储空间可以在编译时确定。
(x)8. 进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
( x)9. 两个正规集相等的必要条件是他们对应的正规式等价。
(x)(x )10. 一个语义子程序描述了一个文法所对应的翻译工作、选择题 ( 请在前括号内选择最确切的一项作为答案划一个勾, 多划按错4.如果文法G 是无二义的,则它的任何句子aA. ( ) 最左推导和最右推导对应的语法树必定相同B. ( ) 最左推导和最右推导对应的语法树可能不同C. ( ) 最左推导和最右推导必定相同论)( 每个 4 分,共 40分) 1.词法分析器的输出结果是。
A .( ) 单词的种别编码C .( ) 单词的种别编码和自身值 2. 正规式 M 1 和 M 2 等价是指。
A. ( ) M1和M2的状态数相等 的有向边条数相等C. ( ) M1和M2所识别的语言集相等 向边条数相等3. 文法G S f 所识别的语言是。
A. ( )B . ( ) ()*C . ( ) (nB. ( ) 单词在符号表中的位置 D . ( ) 单词自身值B . ( ) M1 和 M2D. ( ) M1 和M2状态数和有> 0) D . ( ) x**D. ( ) 可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握6.四元式之间的联系是通过实现的。
2008~2009学年度第二学期《编译原理》考试试卷答案-A
华中科技大学文华学院2008~2009学年度第二学期《编译原理》考试试卷(A卷)标准答案和评分课程性质:(必修)使用范围:(本科)考试时间:2009 年5月日考试方式:(闭卷)学号__________年级专业____________班级________姓名____________ 一、单选题(将正确的答案的字母,填入题干的下划线中。
每题2分,共14分)1.语言学家Chomsky将文法和语言分为四大类,其中3型文法又称为D。
A.无限制文法B.上下文有关文法C.上下文无关文法D.正规文法2.设有文法G[S]:S→(T)|a|∧,T→TbS|S,则FOLLOW(S)= B。
A.{ ),b } B.{ ),b,# } C.{ ),a,# } D.{ ( , b }3.在语法分析方法中,算符优先分析法采用A文法。
A.OPG B.LL(1) C.LR(0) D.LR(1)4.对程序中的表达式的识别工作,编译程序通常都在A阶段完成。
A.语法分析B.语义分析C.词法分析D.目标代码的生成5.自下而上语法分析的工作原理是C。
A.“移进—推导法”B.“最左推导法”C.“移进—规约法”D.“推导—规约法”6.已知∑={a,b},与文法G[S]:S→Sa| Sb| a等价的正规式是C。
A.ab*B.ba* C.a(a|b)*D.aa*|b*7.LR分析法每次都是对当前句型的B进行规约。
A.素短语B.句柄C.短语D.最左素短语二、填空题(每空2分,共22分)1.已知文法G[S]:S →(A)|a ,A →AcS|S|b ;该文法的开始符号是 S ,非终结符号集合为 {S,A},终结符号集合为{a,b,c,(,)}。
2.描述源程序中的单词结构有3种方法:有穷自动机,正规式和正规文法。
3.自上而下的语法分析方法有LL(1)和递归下降方法。
4.设有文法G[S]:S →Sa|a ,构造它的拓广文法,引入一个产生式:S ˊ→S ;则I 。
编译原理考A答案【考试试卷答案】
编译原理考试卷A 答案一大题:1. 答:词法分析阶段:读源程序,对字符流进行扫描和分解,识别出一个个单词。
语法分析阶段:将单词分解成各类语法短语。
语义分析阶段:审查源程序有无语义错误,为代码生成阶段收集类型信息。
中间代码生成阶段:半源程序变成一种内部表示形式。
代码优化阶段:对中间代码进行变换或改造,使生成的目标代码更为高效。
目标代码生成阶段:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
2. 答:文法是一个四元组(V N ,V T ,P,S ),其中V N 为非终结符号集,V T 为终结符号集,P为产生式集,S 为开始符号。
按乔姆斯基分类,把文法分成四种类型:0型(短语文法)、1型(上下文有关文法)、2型(上下文无关文法)、3型(正规文法)。
3. 答:对输入符号串自左向右进行扫描,并将输入符逐个移入一个后进先出栈中,边移入边分析,一旦栈顶符号串形成某个句型的句柄时,就用该产生式的左部非终结符代替相应右部的文法符号串,重复这一过程直到归约到栈中只剩文法的开始符号时则为分析成功,也就确认输入串是文法的句子。
4. 答:符号表的功能:收集符号属性;上下文语义的合法性检查的依据;作为目标代码生成阶段地址分配的依据。
5. 答:优化就是对代码进行等价变换,使得变换后的代码运行把那间与变换前代码运行结果相同,而运行速度加大或占用存储空间少,或两者都有。
优化技术有:删除多余运算、代码外提、强度削弱、变换循环控制条件、合并已知量与复写传播、删除无用赋值。
二大题:解: EE +TT * F短语:T*F , E+T*F 直接短语:T*F 句柄:T*F 素短语: T*F 三大题: 解:得DFA =>院系: 专业班级: 姓名: 学号:装 订 线四大题: 解:Select(S →)={a} select()={b} select()={(}Select(T→S T ′)={a,b,(} select(T′→,ST ′ )={,} select(T′→ε)={)} ∵改写后文法中,相同左部非终结符对应的两条不同产生式的select 集交集均为空 ∴改写后文法是LL (1)文法 (五大题: 解:(1)拓广文法为:(0)A '→A (1)A →aAb (2)A →aA d (3)A→ε 构造LR(0)识别活前缀的DFA :=>∵在I 0、I 2 项目集中,存在移进归约冲突,故不是LR (0)文法。
编译原理考试试题
编译原理考试试题编译原理考试试题编译原理是计算机科学中的一门重要课程,它研究的是如何将高级语言程序翻译成机器语言程序的过程。
在编译原理的学习中,考试试题是一种常见的评估学生理解和掌握程度的方式。
本文将探讨一些可能出现在编译原理考试中的试题,以及它们背后的原理和概念。
第一部分:词法分析词法分析是编译过程中的第一步,它负责将输入的字符序列转换为单词(token)序列。
以下是一些可能出现在词法分析试题中的问题:1. 什么是词法分析器(lexical analyzer)?它的作用是什么?词法分析器是编译器中的一个模块,它负责将源代码转换为一个个单词(token)。
它的作用是识别和提取源代码中的关键字、标识符、常量等。
2. 请解释正则表达式(regular expression)在词法分析中的作用。
正则表达式是一种用来描述字符串模式的工具。
在词法分析中,正则表达式被用来定义各种单词的模式,以便词法分析器能够识别和提取这些单词。
第二部分:语法分析语法分析是编译过程中的第二步,它负责将词法分析器输出的单词序列转换为语法树。
以下是一些可能出现在语法分析试题中的问题:1. 什么是语法分析器(parser)?它的作用是什么?语法分析器是编译器中的一个模块,它负责将词法分析器输出的单词序列转换为语法树。
它的作用是检查源代码是否符合语法规则,并生成语法树以供后续步骤使用。
2. 请解释上下文无关文法(context-free grammar)在语法分析中的作用。
上下文无关文法是一种形式化的语法描述工具,用来描述编程语言中的语法规则。
在语法分析中,上下文无关文法被用来定义编程语言的语法规则,以便语法分析器能够根据这些规则生成语法树。
第三部分:语义分析语义分析是编译过程中的第三步,它负责对语法树进行分析并生成中间代码。
以下是一些可能出现在语义分析试题中的问题:1. 什么是语义分析器(semantic analyzer)?它的作用是什么?语义分析器是编译器中的一个模块,它负责对语法树进行分析并生成中间代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华中科技大学文华学院
2008~2009学年度第二学期《编译原理》考试试卷
(A卷)成绩____________课程性质:(必修)使用范围:(本科)
考试时间:2009 年5月日考试方式:(闭卷)
学号__________年级专业____________班级________姓名____________ 一、单选题(将正确的答案的字母,填入题干的下划线中。
每题2分,共14分)1.语言学家Chomsky将文法和语言分为四大类,其中3型文法又称为______。
A.无限制文法B.上下文有关文法
C.上下文无关文法D.正规文法
2.设有文法G[S]:S→(T)|a|∧,T→TbS|S,则FOLLOW(S)= ______。
A.{ ),b } B.{ ),b,# } C.{ ),a,# } D.{ ( , b }
3.在语法分析方法中,算符优先分析法采用______文法。
A.OPG B.LL(1) C.LR(0) D.LR(1)
4.对程序中的表达式的识别工作,编译程序通常都在______阶段完成。
A.语法分析B.语义分析
C.词法分析D.目标代码的生成
5.自下而上语法分析的工作原理是______。
A.“移进—推导法”B.“最左推导法”
C.“移进—规约法”D.“推导—规约法”
6.已知∑={a,b},与文法G[S]:S→Sa| Sb| a等价的正规式是______。
A.ab*B.ba* C.a(a|b)*D.aa*|b*
7.LR分析法每次都是对当前句型的______进行规约。
A.素短语B.句柄C.短语D.最左素短语
二、填空题(每空2分,共22分)
1.已知文法G[S]:S →(A)|a ,A →AcS|S|b ;该文法的开始符号是____________,
非终结符号集合为____________,终结符号集合为____________。
2.描述源程序中的单词结构有3种方法:有穷自动机,_____________和
____________。
3.自上而下的语法分析方法有____________和______________。
4.设有文法G[S]:S →Sa|a ,构造它的拓广文法,引入一个产生式:S ˊ→S ;则I 。
=Closure ({[S ˊ→·S ,#]})= _______________________。
5.在LR (0)项目集规范族中,若有项目:A A bB →∙,其中T b V ∈,称该项目为
_____________项目。
6.LL(1)语法分析方法中应解决的主要问题是__________;LR 语法分析方法中应解决
的主要问题是_____________。
三、判断题(判断下列各题的正错,若正确,在括号中写“正”;否则写“错”。
每题
2分,共16分)
1.一个文法有二义性,则由它描述的语言一定具有二义性。
( )
2.若一个语言有无穷多个句子,则定义该语言的文法一定是递归的。
( )
3.若有正规式a *b ,则与之等价的文法应该是G[A]:A →a A |b 。
( )
4.设有文法G[A]:A →a B ,B →bB|b ,则该文法是LL(1)文法。
( )
5.由文法法G 的开始符号S 推导出来的符号串,称为文法G 的句子。
( )
6.最左素短语是句型最左边的短语。
( )
7.LR 语法分析法是一种规范规约的分析方法。
( )
8.存在能够被确定的有穷自动机DFA 识别,却不能用正规式表示的语言。
( )
四、解答题(共28分)
1.已知文法G[S]:S→aAb ,A→aAb|a ;求:L(G[S])=?(5分)
2.设M=({x,y},{a,b},f,x,{y})为一有穷自动机,其中f定义如下:f(x,a)={x,y}, f(x,b)={y}, f(y,a)=Φ, f(y,b)={y}。
(5分)
(1)试将它用状态图表示;
(2)试将它用状态矩阵表示。
3.已知文法G[E]:(8分)
E→T|E+T|E-T
T→F|T*F|T/F
F→(E)|i
用语法树求出句型:T+T*F+i的短语,简单短语,素短语和句柄。
4.设有文法G[A]:A→Bc|a,B→aB|c(共5分)
(1).G是LL(1)文法吗?为什么?
(2).若G不是LL(1)文法,则将它改造成等价的LL(1)文法G1。
5.试用语法树证明:文法G[S]:S→aS bS| aS| ε具有二义性(5分)
五、设字母表{0,1},
∑=∑上的正规式为:0(1|0)*(共6分)
1.构造该正规式对应的NFA N ;
2.将NFA N确定化,得到DFA M(用DFA图表示),使得L(M)=L(N);3.将DFA M最小化(用DFA图表示)。
六、已知文法G[S]:S→*A,A→*|0A1 :(8分)
1.计算非终结符的FIRSTVT集和LASTVT集.并找出终结符之间的所有优先关系(包括句子左右的语句括号#)。
2.根据1,构造G的算符优先关系矩阵。
此文法是算法符优先文法吗?
七、设有文法G[S]:S→(S)|b (共6分)
1.构造能识别文法]
G的规范句型活前缀的DFA;(3分)
[S
2.构造它的LR(0)分析表。
(3分)。