编译原理填空题

合集下载

(完整word版)编译原理填空题

(完整word版)编译原理填空题

编译原理填空题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.一张转换图只包含有限个状态,其中有一个被认为是(初)态;而且实际上至少要有一个(终)态。

编译原理填空集锦

编译原理填空集锦

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∈VT*} 。

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

2-06.设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文法的一个句子。

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

4-01.语法分析最常用的两类方法是自上而下和自下而上分析法。

大学课程《编译原理》考试试卷A卷及答案

大学课程《编译原理》考试试卷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. 边翻译边执行和不生成目标代码。

《编译原理》练习题

《编译原理》练习题

《编译原理》练习题一一、填空题(每空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..已知文法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 称为该句型的句柄。

编译原理填空

编译原理填空

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

编译原理试题及答案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、在编译过程中,常见的中间语言形式有(逆波兰表示)、(三元式)、(四元式)和(树形表示)。

编译原理自测题附答案(有错)

编译原理自测题附答案(有错)

第一章一.填空题1.编译程序的工作过程一般可以划分为词法分析、语法分析、语义分析与中间代码产生、优化和生成目标程序等几个基本阶段,同时还伴有符号表管理和出错处理。

2.若源程序是用高级语言编写的,目标程序是汇编或机器语言,则其翻译程序称为编译程序。

3.编译方式与解释方式的根本区别在于运行目标程序时的控制权在解释器而不是目标程序。

4.翻译程序是这样一种程序,它能将用甲种语言书写的程序转换成与其等价的乙种语言书写的程序。

5.对编译程序而言,输入数据是高级语言(源)程序,输出结果是低级语言(目标)程序。

6.运行编译程序的计算机称宿主机,运行编译程序所产生目标代码的计算机称目标机。

7.当把编译程序划分成编译前端和编译后端时,前端主要由与源语言有关但与目标机无关的部分组成,编译后端包括编译程序中与目标机有关的部分,编译后端不依赖于源语言而仅仅依赖于中间语言。

8.描述词法规则的有效工具是词法分析器,通常使用语法分析器来描述语法规则,使用语义分析(与中间代码产生)器描述语义规则。

二.综合题(该答案仅供参考)1、给出C语言编译程序对下面语句进行编译时从词法分析到目标代码生成5个分析阶段的分析过程。

c=a+b*30;(1)给出每个阶段的输入和输出代码或其它数据形式。

(2)给出符号表,说明在哪些阶段会对符号表进行填写或查找。

(3)编译过程是否进行了代码优化?若有,请指出优化之处,并给出属于哪种优化?答:词法分析:出入源程序;输出识别出的记号流。

c=a+b*30 id1=id2+id3*30语法分析器:输入记号流,构造句子结构;输出语法树。

=id1 +id2 *id3 30语义分析与中间代码生成:出入语法树,输出中间代码变量地址数值注:赋值阶段会对符号表进行填写或查找1. id1 0 c (itr,30,,t1)2. id2 4 x (*,id3,t1,t2)3. id3 8 y (+,id2,t2,t3)4. t1 12 30 (=,t3,,id1)优化:1.(*,id3,30.0,t1)2.(+,id2,t1,id1)精简掉多余的复写传播mulf #30.0,r2 mov id2,r1 sub r1,r2 mov r2,id1第二章一.填空题1.上下文无关文法包括以下四个组成部分:一组终结符号,一组非终结符号,一个开始符号,以及一组产生式。

编译原理选择填空

编译原理选择填空

一.填空题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 称为该句型的句柄。

编译原理_填空题

编译原理_填空题
符号表中的信息栏中登记了每个名字的有关的性质,如(类型、种属、所占单元大小、地址)等等。
根据优化所涉及的程序范围,可将优化分成为(局部优化),(循环优化),(全局优化)三个级别。
计算机执行用高级语言编写的程序主要有两种途径:__(_解释)__和_(_编译)___。
局部优化是在__(基本块)___范围内进行的一种优化。
对于数据空间的存贮分配,FORTRAN采用(静态策略,PASCAL采用(动态)策略。
对于文法G,仅含终结符号的句型称为(句子)。
对于文法的每个产生式都配备了一组属性的计算规则,称为__(语义规则)___。
分析句型时,应用算符优先分析技术时,每步被直接归约的是_(_最左素短语)___,而应用LR分析技术时,每步被直接归约的是__(_句柄)__。
编译方式与解释方式的根本区别在于__是否生成(目标代码)。
编译过程可分为(词法分析),(语法分析),(语义分析与中间代码生成),(优化)和(目标代码生成)五个阶段。
编译器常用的语法分析方法有(自底向上)和(自顶向下)两种。
产生式是用于定义_(_语法范畴)___的一种书写规则。
常用的参数传递方式有(传地址),(传值),(传名)
自底向上的语法分析方法的基本思想是:从输入串入手,利用文法的产生式一步一步地向上进行___直接归约__,力求归约到文法的__开始符号___。
自顶向下的语法分析方法的基本思想是:从文法的__开始符号____开始,根据给定的输入串并按照文法的产生式一步一步的向下进行__直接推导____,试图推导出文法的__句子____,使之与给定的输入串___匹配___。
三、填空题(每空1分,共10分)
2型文法又称为(上下文无关)文法;3型文法又称为(正则)文法。

编译原理试题集78677

编译原理试题集78677

编译原理试题集78677第一章引论一.填空题1. 对编译程序而言,输入数据是________________;输出数据是_____________。

2. 编译后端通常不依赖于源语言而仅仅依赖于___________________。

3. 如果不需改写编译程序中与机器无关的部分就可以把编译程序移植到另外一个目标机上,则称该编译程序是___________________。

4. 描述程序设计语言词法的有效工具是___________________________。

5. 编译过程的每一个阶段都能检测出错误,其中,绝大多数错误在_______________阶段检测出来的。

6. 编译过程的每一个阶段都能检测出错误,其中,绝大多数错误在_______阶段检测出来的。

7. 为了使编译后的Java程序从一个平台移到另外一个平台上执行,Java定义了一种称为Byt eCode的虚拟机代码。

只要实际使用的操作平台上实现了执行ByteCode的Java 解释器,这个操作平台就可以执行各种Java程序。

这就是所谓Java语言的________________。

8. 在一个程序设计环境中,______________起着中心作用。

连接程序、调试程序、程序分析等工具的工作直接依赖于它所产生的结果。

解答: 1. 2. 3. 4. 5. 6. 7. 8.二.判断题1. 在编译过程中,既可以将几个不同的阶段合为一遍,也可以把一个阶段的工作分为若干遍。

()2. 编译程序生成的目标程序都是可执行的程序。

()3. 编译前端主要由与源语言和目标机相关的那些部分组成。

()4. 优化的任务在于对前端编译所产生的中间代码进行加工和变换,以其能产生运行结果更为准确的目标代码。

()5. 支持程序设计人员进行程序计开发的工具,除了编译程序以外,还需要编辑程序、链接程序和调试程序等其他一些工具。

()6. 汇编器将高级语言程序翻译成汇编语言程序。

()7. 许多编译程序在识别出语法单位后并不真正构造语法树。

编译原理(选择、填空、简答)题

编译原理(选择、填空、简答)题

编译原理(选择、填空、简答)题一、是非题(下列各题,你认为正确的,请在题干的括号内打“√”,错的打“×”。

每题1分,共5分)1、算符优先关系表不一定存在对应的优先函数。

√2、数组元素的地址计算与数组的存储方式有关。

√3、仅考虑一个基本块,不能确定一个赋值是否真是无用的。

√4、每个文法都能改写为LL(1)文法。

×5、对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。

×6、一个LL(1)文法一定是无二义的。

7、逆波兰法表示的表达式亦称前缀式。

8、目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。

9、正规文法产生的语言都可以用上下文无关文法来描述。

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

二、选择题:1.编译原理是对( c )。

A、机器语言的执行B、汇编语言的翻译C、高级语言的翻译D、高级语言程序的解释执行2.词法分析器的输出结果是( d )。

A、单词自身值B、单词在符号表中的位置C、单词的种别编码D、单词的种别编码和自身值3. 若文法G定义的语言是无限集,则文法必然是( c )A.前后文无关文法B.正规文法C.二义性文法D.递归文法4.文法:G:S→xSx | y所识别的语言是( d )。

A、x n yx mB、(xyx)*C、x*yx*D、xnyxn(n≥0)1 .文法 G 产生的⑴ 的全体是该文法描述的语言。

dA .句型 B. 终结符集 C. 非终结符集 D. 句子2 .若文法 G 定义的语言是无限集,则文法必然是⑵ : aA .递归的B 前后文无关的C 二义性的D 无二义性的3 .Chomsky 定义的四种形式语言文法中,0 型文法又称为⑶ 文法; 1 型文法又称为⑷ 文法; 2 型语言可由⑸ 识别。

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

编译原理习题

编译原理习题

编译原理复习资料一、填空题.1.编译程序是一种程序,能够将某一种高级语言编写的源程序改造成另一种低级语言编写的目标程序,它们在逻辑上_等价__,完成_相同__的工作。

2.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是___二义性的____。

3.词法分析程序的功能是从左到右扫描源程序字符串,根据语言的词法规则识别出各类单词符号,并以___单词符号或单词符号表示的源程序_____的形式输出。

4.编译程序一般划分为词法分析、语法分析、语义分析、中间代码生成、和_代码优化_目标代码生成六个阶段;除此以外,还有两个重要的基本工作,它们是_表格管理_和_出错处理_。

5.目前,语法分析方法有两大类,分别为自上向下的分析方法和__自下而上__分析方法。

自上而下的分析方法是从____文法的开始符号_____出发,根据文法规则正向推导出给定句子的方法。

6.属性文法是编译技术中用来说明程序设计语言的__语义___的工具。

7.若源程序是用高级语言编写的,_____目标程序 ____是机器语言程序或汇编程序,则其翻译程序称为__编译程序____。

8.扫描器(程序)的任务是从____字符串____中识别出一个个___单词符号___。

9.一个LR分析器包括三部分:总控程序、_分析表___和分析栈。

10.自顶向下的语法分析方法的基本思想是:从文法的___开始符号_____出发,根据给定的输入串并按照文法的产生式一步一步的向下进行____正向推导___,试图推导出文法的__给力句子__,使之与给定的输入串匹配。

11.按Chomsky分类法,文法被分成__4(0~3型文法)_类。

12.局部优化是在__基本块__范围内进行的一种优化。

13.编译程序是一种_翻译_程序,它将某一种高级语言编写的源程序改造成另一种低级语言编写的目标程序,源程序和目标程序在逻辑上等价,完成相同的工作。

14.编译程序与解释程序的根本区别为___解释程序在执行中不产生目标程序___。

《编译原理》训练题1

《编译原理》训练题1

《编译原理》训练题第一章一.填空题1.一个编译程序是一个①,编译程序完成从②语言所写的源程序到③语言所写的目标程序的翻译工作。

2.编译程序的整个工作划分成阶段进行的,典型的划分方法,将编译过程分成六个阶段:①,②,③,④,⑤,⑥。

3.对编译程序而言,输入数据是①,输出结果是②。

4.编译方式与解释方式的根本区别在于。

二判断题()1.汇编程序是一个编译程序,它把汇编语言程序翻译成机器语言执行。

() 2.编译程序是一个语言翻译程序,它把汇编语言程序翻译成机器语言执行。

三.选择题1.汇编程序是将(1)翻译成(2);编译程序是将(3)翻译成(4)。

可选项有:a.汇编语言程序b.机器语言程序c.高级语言程序d.汇编语言程序或机器语言程序e.汇编语言程序或高级语言程序f.机器语言程序或高级语言程序2.用高级语言编写的程序经编译后产生的程序叫(1)。

用不同语言编写的程序产生(1)后,可用(2)连接在一起生成机器可执行的程序。

在机器中真正执行的是(3)。

可选项有:a.源程序b.目标程序c.函数d.过程e.机器指令代码f.模块g.连接程序h..程序库3.编译程序与具体的机器(1),与具体的语言(2)。

可选项有:a.有关b.无关4.编译程序是一种常用的软件。

可选项有:a.应用b.系统5.编译程序生成的目标程序是机器语言的程序。

可选项有:a.一定b.不一定四、思考题1.给出一个典型的编译程序的结构框图。

2.什么是前端和后端?设想相同的前端不同的后端,相同的后端不同的前端生成的编译程序分别有何特征?第二章一.填空题1. INT O A在每个过程目标程序的入口都有这样一条指令,用以完成①的工作,A域的值为②。

2. OPR O O在每个过程目标程序的①都有这样一条指令,用以完成②的工作。

3.PL/0编译程序运行时的存储分配策略采用栈式动态分配,用①链和②链的方式解决递归调用和非局部变量的引用问题。

4. 是构成语言文法的单词,是语法成分的最小单位。

编译原理试题及答案3

编译原理试题及答案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、在编译过程中,常见的中间语言形式有(逆波兰表示)、(三元式)、(四元式)和(树形表示)。

编译原理 填空题

编译原理 填空题

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、汇编程序将________翻译成________;编译程序将________翻译成________。

2、编译程序工作工程可以划分为______、______、______、______和______等5个基本阶段,同时还会伴有______和______。

3、对编译程序而言,输入数据是______,输出数据是______。

4、已知文法G[E]:E—>T|E+T|E—F,T-〉F|T*F|T/F,F->(E)|I,(“,”是间隔符号,不是文法中的符号)。

该文法的开始符号(识别字符)是______,终结符号集合V T是______,非终结符号结合V N是______,句型T+T*F+i的短语有____________。

该文法消除直接左递归,改写后的文法为E->________,T ->________,F-〉________。

5、Chomsky定以来寺中形式语言的文法分别为:________文法(又称________文法)、________文法(又称________文法)、________文法(又称________文法)、________文法(又称________文法)。

6、编译过程中扫描器所完成的任务是从________中识别出一个个具有________。

7、确定的有穷自动机是一个________,通常表示为________.8、LL(k)分析中,第一个L的含义是________,第二个L的含义是________,“k"的含义是________。

9、LL(1)分析中,第一个L的含义是________,第二个L的含义是________,“1”的含义是________.10、LR(0)分析中,“L"的含义是________,“R”的含义是________,“0”的含义是________。

11、SLR(1)分析中,“L”的含义是________,“R”的含义是________,“1”的含义是________。

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

1.扫描器的任务是从源程序中识别出一个个单词符号
2.语法分析最常用的两类方法是自顶向下和___ 自底向上 ______分析法。

计算机执行用高级语言编写的程序主要有两种途径:___解释__和__编译___。

2.扫描器是__词法分析器___,它接受输入的__源程序___,对源程序进行___词法分析__并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。

3.自上而下分析法采用___移进__、归约、错误处理、___接受__等四种操作。

4.一个LR分析器包括两部分:一个总控程序和___一张分析表__。

5.后缀式abc-/所代表的表达式是___a/(b-c)__。

6.局部优化是在__基本块___范围内进行的一种优化。

5.编译程序首先要识别出源程序中每个单词,然后再分析每个句子并翻译其意义。

6.编译器常用的语法分析方法有自底向上和自顶向下两种。

7.通常把编译过程分为分析前端与综合后端两大阶段。

词法、语法和语义分析是对源程序的分析,中间代码生成、代码优化与目标代码的生成则是对源程序的综合。

8.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即静态存储分配方案和动态存储分配方案。

9.对编译程序而言,输入数据是源程序,输出结果是目标程序。

12.自下而上语法分析的基本实现方法是,该文法引进了一个符号栈来存放符号,按照扫描顺序把当前输
13.乔姆斯基把文法分成4种类型:0型也叫短语文法;1型也叫上下文有关文法;2型也叫上下文无关文法;3型也叫正则文法。

14.自上而下分析方法一般需要消除左递归和回溯。

15.一般而言,编译器的分析部分包括词法分析,语法分析,语义分析二综合部分包括中间代码生成,代码优化,代码生成。

以上六个阶段都涉及到符号表管理和出错管理。

16..任何NFA都存在一个与之等价的DFA。

17. 算符优先分析法定义的可归约串叫做最左素短语,LR分析中定义的可归约串称为句柄。

18. LR(1)分析法的名字中,“R”指的是最右推导逆过程。

19 高级语言编译程序常用的语法分析方法中,递归下降分析法属于自上而下分析方法;
SLR分析法属于自下而上分析方法。

20. 在编译过程中:词法分析的常用方法有有穷自动机理论;语法分析常用的方法有
自顶向下匹配和自底向上归约中间代码生成的常用方法有语法制导翻译方法;
21. 文法符号的属性有继承属性和综合属性两种
22. 语义分析通常生成中间代码形式,常见的中间代码有逆波兰、四元式、三元式、三地址代码、抽象语法树等。

相关文档
最新文档