编译原理选择填空
《编译原理》考试题
《编译原理》考试题一、选择题:(每题2分,共20分)1.文法G所描述的语言是的集合。
A)文法G的字汇表V中所有符号组成的符号串B)文法G的字汇表V的闭包V*中的所有符号串C)由文法的识别符号推出的所有符号串D)由文法的识别符号推出的所有终结符号串2.设有文法G[S]=({b},{S,B},S,{S→b|bB,B→bS}),试问该文法所描述的语言是。
A)L(G[S])={b i|i≥0} B)L(G[S])={b2i|i≥0}C)L(G[S])={b2i+1|i≥0} D)L(G[S])={b2i+1|i≥1}3.一个句型中的最左称为该句型的句柄。
A)短语B)简单短语C)素短语D)终结符号4. 正则文法能产生下面的语言:L={a n b n|n≥1}。
A)存在一个B)存在多个C)不存在D)无法判断5.编译程序中的语法分析器接受以为单位的输入,并产生有关信息供以后各阶段使用。
A)表达式B)产生式C)单词D)语句6.编译方法中,自顶向下的语法分析方法有。
A)简单优先分析方法B)算符优先分析方法C)SLR方法D)LL(1)分析方法7.简单优先分析法每次都是对进行归约。
A)最左短语B)简单短语C)句柄D)最左素短语8.LR语法分析栈中存放的状态是识别的DFA状态。
A)前缀B)可归前缀C)项目D)句柄9.表达式-(a+b)/(c-d)-(a+b*c)的逆波兰表示是(@代表单目运算-)。
A)ab+cd-/@bc*a+- B)ab+/cd@bc*a+--C)ab+@cd-/abc*+- D)ab+cd-/abc*+@-10.乔姆斯基(Chomsky)把文法分成四种类型,即0型、1型、2型和3型。
其中,3型文法是。
A)上下文无关文法B)上下文有关文法C)正则文法D)短语文法二、填空题:(每空1分,共20分)1.假设G是一个文法,S是文法的开始符号,如果S *x,则称x是。
2.已知文法G[E]:E→E+T|T,T→T*F|F,F→(E)|i;该文法的开始符号是,终结符号集合V T是,非终结符号集合V N 是,句型T+T*F+i的短语有T+T*F+i,第一个T,T*F和。
编译原理填空选择
编译原理填空选择一、填空题:1-01.编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,之间代码生成,代码优化等几个基本阶段,同时还会伴有表格处理和出错处理 .1-02.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序 ,则其翻译程序称为编译程序.1-03.编译方式与解释方式的根本区别在于是否生成目标代码.1-04.翻译程序是这样一种程序,它能够将用甲语言书写的程序转换成与其等价的用乙语言书写的程序 .1-05.对编译程序而言,输入数据是源程序 ,输出结果是目标程序 .1-06.如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段: 编译阶段和运行阶段 .如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分为三个阶段: 编译阶段 , 汇编阶段和运行阶段.2-01.所谓最右推导是指:任何一步αTβ都是对α中最右非终结符进行替换的。
2-02.一个上下文无关文法所含四个组成部分是一组终结符号、一组非终结符号、一个开始符号、一组产生式。
2-03.产生式是用于定义语法成分的一种书写规则。
2-04.设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为: L(G)={x│S x,x∈VT*} 。
2-05.设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈V*),则称x是文法的一个句型。
2-06.设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文法的一个句子。
3-01.扫描器的任务是从源程序中识别出一个个单词符号。
4-01.语法分析最常用的两类方法是自上而下和自下而上分析法。
4-02.语法分析的任务是识别给定的终极符串是否为给定文法的句子。
4-03.递归下降法不允许任一非终极符是直接左递归的。
4-04.自顶向下的语法分析方法的关键是如何选择候选式的问题。
4-05.递归下降分析法是自顶向下分析方法。
4-06.自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。
《编译原理》考试试题及答案(汇总)
《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个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.编译程序的工作过程一般可以划分为词法分析_、_语法分析_、_语义分析、_中间代码生成、_代码优化_等几个基本阶段,同时还会伴有表格处理和出错处理(6分)。
2. 在目标代码生成阶段,符号表是地址分配的依据。
(2分)。
3. 符号表的数据结构可以是无序符号表、有序符号表、栈式符号表。
4. 词法分析阶段的错误主要是单词拼写错误,可通过最小距离匹配的办法纠正错误。
5. 在大部分现有编译中采用的方案主要有两种:动态分配方案和静态分配方案。
1.编译程序与具体的机器无关,与具体的语言有关。
2.SLR(1)分析法中,L的含义是自左向右进行分析,R含义是采用最右推导的逆过程,S含义是简单的,“1”的含义是向貌似句柄的符号串的查看一个输入符号。
4.确定的有穷自动机是一个五元组,通常表示为M(Q,∑,t,q0,F)。
5.在大部分现有编译中采用的方案主要有两种:动态分配方案和___静态____分配方案。
6.假定G是一个文法,S是它的开始符号,如果S * α,则称_α__是一个句型,仅含终结符号的句型是一个句子。
文法G所产生的句子的全体是一个语言,将它记为L(G)。
1.程序的翻译方式有两种,分别是_编译方式_和_解释方式_。
2.字的前缀是指该字的任意首部。
(2分)3.LR(1)分析法中,L的含义是自左向右进行分析,R含义是采用最右推导的逆过程-最左归约,“1”的含义是向貌似句柄的符号串后查看一个输入符号。
4.编译过程中,常见的中间语言形式有三元式、逆波兰式和四元式。
5.程序的可再入性指的是:当程序在执行时,可以_随时中断__它的执行,也可随时_执行进程__恢复其原来的_执行进程_;而且可以在_中断时间里_,又从该程序的_头上开始一个新的执行过程。
1. 编译程序工作过程中,第一段输入是源程序,最后阶段的输出为目标程序。
2.若二个正规式所表示的正规集相同,则认为二者是等价的(2分)。
3. 符号表中名字的有关信息在词法分析和语法语义分析过程中陆续填入。
编译原理考试题及答案
编译原理考试题及答案一、选择题(每题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. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。
编译原理试题及答案3
编译原理复习题一、填空题:1、编译方式与解释方式的根本区别在于(是否生成目标代码)。
2、对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。
3、如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段:(编译阶段)和(运行阶段)。
4、如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分成三个阶段:(编译阶段)、(汇编阶段)和(运行阶段)。
5、自顶向下语法分析方法会遇到的主要问题有(回溯)和((左递归带来的)无限循环)。
6、LL(k)分析法中,第一个L的含义是(从左到右进行分析),第二个L的含义是(每次进行最左推导),“k”的含义是(向输入串中查看K个输入符号)。
7、LL(1)分析法中,第一个L的含义是(从左到右进行分析),第二个L的含义是(每次进行最左推导),“1”的含义是(向输入串中查看1个输入符号)。
8、自顶向下语法分析方法的基本思想是:从(识别符号)出发,不断建立(直接推导),试图构造一个推导序列,最终由它推导出与输入符号相同的(符号串)。
9、自底向上语法分析方法的基本思想是:从待输入的符号串开始,利用文法的规则步步向上进行(直接归约),试图(归约)到文法的(识别符号|开始符号)。
10、LR(0)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“0”的含义是(向貌似句柄的符号串后查看0个输入符号)。
11、LR(1)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。
12、SLR(1)分析法的名字中,“S”的含义是(简单的),“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。
13、在编译过程中,常见的中间语言形式有(逆波兰表示)、(三元式)、(四元式)和(树形表示)。
编译原理试题及答案
参考答案一、单项选择题(共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 3B .L 3⊂L 2⊂L 1⊂L 0C .L 3=L 2⊂L 1⊂L 0D .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.通常把编译过程分为分析前端与综合后端两大阶段。
词法、语法和语义分析是对源程序的(分析),中间代码生成、代码优化与目标代码的生成则是对源程序的(综合)。
编译原理选择填空
一.填空题1..已知文法G[E]:E →E+T|TT →T*F|FF →(E)|a该文法终结符集合V T = {+,*,(,),a} ,文法非终结符集合V N = {E,T,F} ,该 文法在乔姆斯基文法分类中属于 2型 文法。
2.给出下列文法的适合自上而下翻译的语义动作,使得当输入是aabb 时其输出串是12020。
(1)A →aB {printf('0');}(2)A →c {printf('1');}(3)B →Ab {printf('2');}二.选择题1..为了使编译程序能对程序设计语言进行正确的翻译,必须采用 C 方法定义程序设计语言。
A.非形式化B.自然语言猫鼠问题C.形式化D.自然语言和符号体系相结合2.设X 是符号串,符号串的幂运算x0= CA.1B.xC.εD.∅3.若有源程序是高级语言编写的程序,目标程序是 C ,则称它为编译程序。
A.汇编语言程序或高级语B. 高级语言程序或机器语言程序C.汇编语言程序或机器语言程序D.连接程序或运行程序4.编译程序对 A 程序进行翻译。
A.高级语言B.机器语言C.自然语言D.汇编语言5.编译过程中,语法分析阶段的任务是 B .A.语言识别B.识别语言单词C.识别语句D.识别程序6.字母表示的元素可以是 DA.字母B. 字母和数字C. 数字D.字母 数字和其他符号7.在规则(产生式)中,符号“→”(“::=”)表示 DA.恒等式B.等于C.取决于D.自定义8.在规则(产生式)中,符号“|”表示 BA.与B. 或C. 非D.引导开关参数9.设有文法G [S]=({S,B},{b},{S →bB|b,B →bS},S),改文法所描述的语言是 CA. L(G[S]) ={b n |n >=n 2|n >= C. L(G[S]) ={b 12+n |n >=12+n |n >=10.一个句型最左边的 C 称为该句型的句柄。
编译原理复习题
一、填空题:〔10分,第1小题每2个1分,其余每空1分〕1、编译程序一般含有八局部,分别是、、、、、、、。
2、编译程序与解释程序的根本区别是3、一个上下文无关文法G包括四个组成局部依次为:一组_____、一个_____、一组_____、一组______。
4、设G是一个文法,S是文法的开始符号,如果S⇒* X,那么称X 是。
二、选择题〔本大题共15小题,每题1分,共15分〕1、编译程序生成的目标程序是机器语言程序。
A、一定B、不一定2、设有文法G[S]=〔{b},{S,B},S,{S→b|bB, B→bS}〕,该文法描述的语言是。
A、b i | i≥0B、b2i | i≥0C、b2i+1 | i≥0D、b2i+1 | i≥13、设有文法G[S]:S→S*S|S+S|〔S〕|a该文法二义性文法A、是B、不是C、无法判断4、汇编程序是将______翻译成______;编译程序是将_______翻译成__________。
A、汇编语言程序B、机器语言程序C、高级语言程序D、汇编语言或机器语言程序5、给定文法A→bA|cc, 下面符号串中,为该文法句子的是。
①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbccA、①B、①③④⑤C、①⑤D、①④⑤E、①②③④⑤6、语法分析的常用方法是。
①自顶向下②自底向上③自左向右④自右向左A、①②③④B、①②C、③④D、①②③7、语言L={a n bb n|n≥1},那么下述文法中,可以产生语言LA、Z→aZb|aAb|b A→aAb|bB、A→aAb A→bC、Z→AbB A→aA|a B→bB|bD、Z→aAb A→aAb|b8、以下正规表达式中________与(a|b)*(c|d)等价。
A、〔a*|b*〕(c|d)B、〔a*|b*〕*(c|d)C、(ab)*(d|c)D、〔a*b*〕(cd)9、算符优先分析法每次都是对进行归约。
A、最左短语B、直接短语C、句柄D、素短语E、最左素短语10、简单优先分析法每次都是对进行归约A、最左短语B、直接短语C、句柄D、素短语E、最左素短语11、以下文法G[S] ]:S→AA A→Aa|a不是LR〔1〕文法,理由是A.、FIRST(S)∩FIRST〔A〕≠∅B、FIRST〔A〕∩FOLLOW〔A〕≠∅C、FIRST〔Aa〕∩FIRST〔a〕≠∅D、都不是12、设有文法G[E]:E→E*E|E+E|〔E〕|a 该文法LR〔1〕文法A、是B、不是C、无法判断13、对于文法G[A]:A→aABe|Ba B→dB|ε有人说,因为FIRST〔aABe〕∩FOLLOW〔A〕≠∅并且FIRST〔Ba〕∩FOLLOW 〔A〕≠∅,所以文法G[A]不是LL〔1〕文法。
编译原理填空题
编译原理填空题1.计算机执行用高级语言编写的程序主要有两种途径:___解释__和__编译___。
2.扫描器是__词法分析器___,它接受输入的__源程序___,对源程序进行___词法分析__并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。
3.自上而下分析法采用___移进__、归约、错误处理、___接受__等四种操作。
4.一个LR分析器包括两部分:一个总控程序和___一张分析表__。
5.后缀式abc-/所代表的表达式是___a/(b-c)__。
6.局部优化是在__基本块___范围内进行的一种优化。
7、语义分析的基本功能包括: 确定类型、类型检查、语义处理和某些静态语义检查。
2.编译过程可分为(词法分析),(语法分析),(语义分析与中间代码生成),(优化)和(目标代码生成)五个阶段。
3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是(二义性的)。
4.从功能上说,程序语言的语句大体可分为(执行性)语句和(说明性)语句两大类。
5.语法分析器的输入是(单词符号),其输出是(语法单位)。
6.扫描器的任务是从(源程序中)中识别出一个个(单词符号)。
7.符号表中的信息栏中登记了每个名字的有关的性质,如(类型、种属、所占单元大小、地址)等等。
8.一个过程相应的DISPLAY表的内容为(现行活动记录地址和所有外层最新活动记录的地址)10.常用的两种动态存贮分配办法是(栈式)动态分配和(堆式)动态分配。
11.一个名字的属性包括( 类型)和(作用域 )。
12.常用的参数传递方式有(传地址),(传值),(传名)13.根据优化所涉及的程序范围,可将优化分成为(局部优化),(循环优化),(全局优化)三个级别。
14.语法分析的方法大致可分为两类,一类是(自上而下)分析法,另一类是(自下而上)分析法。
15.预测分析程序是使用一张(分析表)和一个(符号栈)进行联合控制的。
17.一张转换图只包含有限个状态,其中有一个被认为是(初)态;而且实际上至少要有一个(终)态。
编译原理考试题及答案
编译原理考试题及答案一、选择题(每题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. 编译器的运行时系统在内存管理中,需要处理________和垃圾收集。
编译原理考试题及答案
编译原理考试题及答案一、选择题(每题2分,共10分)1. 在编译原理中,词法分析器的主要任务是什么?A. 将源代码转换为中间代码B. 识别源代码中的词法单元C. 进行语法分析D. 优化代码答案:B2. 下列哪个选项不是编译器的组成部分?A. 词法分析器B. 语法分析器C. 运行时环境D. 语义分析器答案:C3. 编译器的哪个阶段负责检查变量是否已经声明?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:C4. 在编译原理中,哪些技术常用于错误恢复?A. 预测分析表和LR分析B. 递归下降分析和LR分析C. 预测分析表和递归下降分析D. 预测分析表和错误恢复算法答案:D5. 编译器中用于优化代码的阶段是哪一个?A. 词法分析B. 语法分析C. 语义分析D. 代码优化答案:D二、填空题(每题2分,共10分)1. 编译器的前端包括词法分析、语法分析和________。
答案:语义分析2. 在编译过程中,________分析器负责将源代码的逻辑结构转换为一种内部表示形式。
答案:语法3. 编译器的后端包括________、寄存器分配和代码生成。
答案:中间代码生成4. 编译器中的________分析用于检查程序中的类型错误。
答案:语义5. 编译器的________阶段负责将高级语言代码转换为目标机器代码。
答案:代码生成三、简答题(每题10分,共20分)1. 简述编译器的主要功能。
答案:编译器的主要功能包括将高级语言编写的源代码转换成目标机器可以执行的机器代码,同时进行错误检测、代码优化等。
它通常包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等阶段。
2. 描述编译过程中的语法分析阶段的主要任务。
答案:语法分析阶段的主要任务是检查源代码是否符合语言的语法规则,构建抽象语法树(AST),并进行语法制导的语义分析。
这一阶段使用诸如自顶向下的递归下降分析、自底向上的移进-规约分析等技术来识别语言结构,并为后续的语义分析和代码生成打下基础。
编译原理 习题 选择,填空,判断
1.表达式A*(B-C*(C/D))的逆波兰式是( )A.ABC-CD/* B.ABCCD/*-* C.ABC-*CD/* D.a,b,c均不正确2.chomsky 的2型语言可由下面哪个识别?( )A.图灵机 B.有穷自动机 C.下推自动机 D.线性界限自动机3.最左简单子树的末端结点构成的符号串称为( )A.句柄 B.最左素短语 C.素短语 D.简单短语4.在使用高级语言编程时,首先可通过编译程序发现源程序的什么错误?( )A.语法 B. 语义 C. 语用 D. 运行5.用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行。
这种说法正确的是( )A. 正确B. 不正确C. 不一定D. 都不对6.若文法 G 定义的语言是无限集,则文法必然是( )A.递归的 B.无二义性的 C.二义性的 D.上下文无关的7.一个文法所描述的语言是( )A.唯一的 B.不唯一的 C.可能唯一 D.可能不唯一8 Chomsky 的3型语言可由下面哪个识别?( )A.图灵机 B.有穷自动机 C.下推自动机 D.线性界限自动机9.Chomsky 定义的四种形式语言文法中,1型文法又称为(哪种文法?( )A.短语结构文法 B.正规文法 C.上下文有关文法 D.上下文无关文法10.算符优先分析是一种自底向上的分析方法,它是以什么作为每一步归约的对象?( ) A.最右直接短语 B.最左直接短语 C.句柄 D.最左素短语11.下面哪种不是自底向上的语法分析文法?( )A.LR(1) B.LL(R) C.算符优先法 D.SLR(1)12.赋值语句x=a+b*((a+c)*d+e)的逆波兰式是( )A.xab+ac+d*e+= B.xabac+de+**+= C.xabac+d*e+*+= D.abc均不对4.下面( )是词法分析的理论基础。
A.正规式 B.有穷自动机 C.下推自动机 D.正规文法13.由“非终结符 符号串”这种产生式形式构成的文法是( )A.正则文法 B.1 型方法 C.2型方法 D.3型方法14.若一个文法是递归的,则它产生的句子个数是( )A.无穷个 B.可能有限个 C.有限个 D.以上均不对15.给定文法, A→ Aa|b, 下面的符号串可由其推导出的是( )A.aab B.aaab C.baa D.ε16.LR(K)分析是一种自底向上的分析法,它是以下面哪个作为每一步归约的对象?( ) A.最右直接短语 B.最左直接短语 C.句柄 D.最左素短语17.文法G[E]为:E→ E+E|E*E|a,它是( )。
编译原理 填空题
1.扫描器的任务是从源程序中识别出一个个___ ____。
2.语法分析最常用的两类方法是自顶向下和___ ______分析法。
3.所谓语法制导翻译方法是____ _________________。
4.源程序执行的途径有和解释途径两类。
5.符号表的作用是和辅助目标代码的生成。
6.词法分析的任务是。
7.素短语是指至少含有一终结符和的短语。
8.LL(1)分析法的文法须满足的条件是无回溯和。
9.DFA和NFA间的区别是后继状态是否唯一和。
10.二义性的解决办法是修改编译算法和。
11.常用的两种动态存贮分配办法是栈式动态分配和__ ___动态分配。
12.从功能上说,程序语言的语句大体可分为执行性语句和__ ____语句两大类。
13.一个上下文无关文法包含四个组成部分是一组终结符号、一组非终结符号、一个开始符号和。
14.产生式是用于定义__ ___的一种书写规则。
15.动态存储分配实现的方式有和堆式分配两种。
16.表达式a*(b+c)/d- (f+e)的逆波兰式表示是。
28.常见的中间语言的形式有三元式、、逆波兰式和树表示。
17.可用属性文法来说明源语言语义。
属性文法由一个和一系列附加在文法上的语义规则构成。
18.词法分析器的另一个名称为。
19.代码优化可以分、全局优化和循环优化三类。
20.文法G[S]:S→aSb∣ε描述的语言L(G[S])是。
21.素短语是指至少含有一终结符和的短语。
22.无环路有向图(DAG)是指。
23.所谓优化是指和减少存储空间。
24.翻译程序分为解释程序、和汇编程序三种。
25.单词的描述工具有、正规式和正规方法。
26.文法G[S]:S→aSa∣cc描述的语言L(G[S])是。
27.算符优先方法每次是对进行归约,规范归约每次是对句柄进行归约。
28.中间代码的产生是随编译中语法分析处理而进行的,所以叫做的中间代码生成。
29.文法G[S]:S→aAb|aBb B→cBd∣ε描述的语言L(G[S])是。
《编译原理》练习题
《编译原理》练习题一一、填空题(每空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.( )文法不是LL(1)的。
A.递归 B.右递归 C. 2型 D.含有公共左因子的2.( )型文法也称为正规文法。
A. 0 B. 1 C. 2 D. 33.( )是一种典型的解释型语言。
A.BASIC语言 B.C语言 C.FORTRAN语言 D.PASCAL语言4.( )和代码优化部分不是每个编译程序都必需的。
A.语法分析 B.中间代码生成C.词法分析 D.目标代码生成5.( )文法不是LL(1)的。
A. 递归B. 右递归C. 2型D. 含有公共左因子的6.( )型文法也称为正规文法。
A. 0B. 1C. 2D. 37.( )是两类程序语言处理程序。
A.高级语言程序和低级语言程序 B .解释程序和编译程序C.编译程序和操作系统 D.系统程序和应用程序8.( )是两类程序语言处理程序。
A.高级语言程序和低级语言程序 B.解释程序和编译程序C.编译程序和操作系统 D.系统程序和应用程序9.( ) 型文法也称为上下文有关文法。
A. 0B. 1C. 2D. 310.把汇编语言程序翻译成机器可执行的目标程序的工作是由( )完成的。
A.编译器 B.汇编器C.解释器 D.预处理器11.编译程序绝大多数时间花在( )上。
A.出错处理 B.词法分析 C.目标代码生成 D.表格管理12.编译程序前三个阶段完成的工作是( )A.词法分析、语法分析和代码优化B.代码生成、代码优化和词法分析C.词法分析、语法分析、语义分析和中间代码生成D.词法分析、语法分析和代码优化13.编译程序使用( )区别标识符的作用域。
A. 说明标识符的过程或函数名B.说明标识符的过程或函数的静态层次C.说明标识符的过程或函数的动态层次D. 标识符的行号14.编译程序是对( )。
A.汇编程序的翻译 B.高级语言程序的解释执行C.机器语言的执行 D.高级语言的翻译15编译程序是一种( )。
A. 汇编程序 B.翻译程序 C.解释程序 D.目标程序16.编译原理各阶段工作都涉及( )A. 词法分析B. 表格管理C. 语法分析D. 语义分析17.不可能是目标代码的是( )A.汇编指令代码 B.可重定位指令代码C.绝对指令代码 D.中间代码18.采用自上而下分析,必须( )。
编译原理试题及答案
编译原理试题及答案一、选择题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)。
一.填空题
1..已知文法G[E]:
E →E+T|T
T →T*F|F
F →(E)|a
该文法终结符集合V T = {+,*,(,),a} ,文法非终结符集合V N = {E,T,F} ,该 文法在乔姆斯基文法分类中属于 2型 文法。
2.给出下列文法的适合自上而下翻译的语义动作,使得当输入是aabb 时其输出串是12020。
(1)A →aB {printf('0');}
(2)A →c {printf('1');}
(3)B →Ab {printf('2');}
二.选择题
1..为了使编译程序能对程序设计语言进行正确的翻译,必须采用 C 方法定义程序设计语言。
A.非形式化
B.自然语言猫鼠问题
C.形式化
D.自然语言和符号体系相结合
2.设X 是符号串,符号串的幂运算x0= C
A.1
B.x
C.ε
D.∅
3.若有源程序是高级语言编写的程序,目标程序是 C ,则称它为编译程序。
A.汇编语言程序或高级语
B. 高级语言程序或机器语言程序
C.汇编语言程序或机器语言程序
D.连接程序或运行程序
4.编译程序对 A 程序进行翻译。
A.高级语言
B.机器语言
C.自然语言
D.汇编语言
5.编译过程中,语法分析阶段的任务是 B .
A.语言识别
B.识别语言单词
C.识别语句
D.识别程序
6.字母表示的元素可以是 D
A.字母
B. 字母和数字
C. 数字
D.字母 数字和其他符号
7.在规则(产生式)中,符号“→”(“::=”)表示 D
A.恒等式
B.等于
C.取决于
D.自定义
8.在规则(产生式)中,符号“|”表示 B
A.与
B. 或
C. 非
D.引导开关参数
9.设有文法G [S]=({S,B},{b},{S →bB|b,B →bS},S),改文法所描述的语言是 C
A. L(G[S]) ={b n |n >=
n 2|n >= C. L(G[S]) ={b 12+n |n >=12+n |n >=
10.一个句型最左边的 C 称为该句型的句柄。
A. 短语
B.素短语
C. 直接短语
D.规范短语
11.设有文法G[E]: E →E+T|E-T|T T →T*F|T/F|F F →(E)|i
A. E
B. E+T
C. T*F
D.E+T*F
12.编译程序中词法分析器所完成的任务是从源程序中识别出一个一个具有独立意义的 D
A. 表达式
B. 语句
C. 过程
D.单词符号
13.无符号常数的识别和拼数工作,通常都在 A 阶段完成
A.词法分析
B. 语法分析
C.语义分析
D.目标代码生成
14.用l代表字母,d代表数字,∑={l,d},则定义标识符单词的正规式是 C
A.ld*
B.ll*
C. l(l|d) *
D.ll*|d*
15.正规式的运算符“*”读作 C 。
A. 或
B.连接
C.闭包
D.乘
16.通常程序设计语言的词法的此法规则可用正规式描述,词法分析器可用 B 来实现。
A. 语法树
B.有穷自动机
C.栈
D.堆
17.一个确定的又穷自动机DFA是一个 A
A.五元组
B.四元组
C.四元组
D.三元组
18. B 不是NFA的成分
A. 有穷输入字母表
B.文法符号集合
C. 终止状态集合
D.有限状态集合
19.编译程序中语法分析器接受以 C 为单位的输入,并产生相关信息供以后阶段使用。
A. 表达式
B. 字符串
C.单词
D.语句
20.在高级语言编译程序常用的语法分析方法中,递归下降分析法属于 B 分析方法。
A.自左至右
B. 自上而下
C.自下而上
D.自由向左
21.递归下降分析法和预测分析法要求描述语言的文法是 C
A. 正规文法
B. LR(l)文法
C.LL(l)文法
D.右线性文法
22.自下而上语法分析的原理是 B
A. "移进—推导法"
B.移进—归约法
C.最左推导法
D."推导—归约法"
23.设有一文法G,如果文法G中没有形成如A→......BC......的规则,其中A,B,C为非终结符,则称文法G为 D
A. 算符优先文法
B.LL(l)文法
C.LR(0)文法
D.算符文法
24.算符优先分析法从左到右扫描输入串,当栈顶出现 D 时进行归约。
A. 素短语
B.直接短语
C.句柄
D.最左素短语
25.LR语法分析栈中存放的状态是识别文法规范句型 B 的DFA状态。
A. 前缀
B.活前缀
C.项目
D.句柄
\。