北语18春《编译原理》作业3
《编译原理》作业参考答案
《编译原理》作业参考答案一、填空1.图二图一。
2.文法是无ε产生式,且任意两个终结符之间至多有一种优先关系的算符文法。
3.最右推导最右推导。
4.对于循环中的有些代码,如果它产生的结果在循环中是不变的,就把它提到循环外来。
把程序中执行时间较长的运算替换为执行时间较短的运算。
5.对于文法中的每个非终结符A的各个产生式的候选首符集两两不相交;对文法中的每个非终结符A,若它存在某个候选首符集包含ε,则FIRST(A)∩FOLLOW(A)= ø6.控制。
7.语义分析和中间代码产生8.自上而下自下而上自上而下9.自下而上表达式10.自下而上11.源程序单词符号12. DFA初态唯一,NFA初态不唯一;DFA弧标记为Σ上的元素,NFA弧标记为Σ*上的元素;DFA的函数为单射,NFA函数不是单射13.词法,词法分析器,子程序,语法14.ε,a,ab,ab15.终结符号,非终结符号,产生式16.L(G)={a n | n≥1}17.1型,2型,3型18.二义的19.快20.终态,输入字21.单词符号,终结符22.归约23.必须24.直接25.终结符,更快26.E→E+∙T, E→E∙+T, E→∙E+T, E→E+T∙27.归约—归约28.类型检查,一致性检查29.词法分析、词法30.语法分析程序、语法31。
终结符号、产生式、开始符号、非终结符32.2、2、333.不需要避开34.符合、不符合35.推导36.包括37.Ass38.一定没有、一定没有、至多只有一个39.SLR(1)40.移进——归约41.a.控制流检查、b.一致性检查、c.相关名字检查二、判断下面语法是否正确1 ×2 ×3 √4 ×5 √6 ×三、简答题1.词法分析的任务是对输入的源程序进行单词及其属性的识别,为下一步的语法分析进行铺垫;有两种方法可以实现词法分析器:一,手工编写词法分析程序。
二,由词法分析器自动生成程序生成。
编译原理作业与答案
编译原理独立作业2010.5一、简答题1、 构造一个文法使其生成的语言是不允许0打头的偶正整数集合。
2、文法][E G :T T E T E E -+→,F F T F T T /*→,i E F )(→,构造句型i T T T *+-的语法树,并指出该句型的短语、直接短语、句柄、素短语和最左素短语。
3、 某LL(1)文法的预测分析表如下,请在下述分析过程表中填入输入串( a , a )$ 的分析过程。
4、 文法][S G :R L S =→,R S →,R L *→,i L →,L R →,求增广文法中LR(1)项目集的初态项目集I 0。
5、文法][S G :G G S S ;→,()G G t H →,)(S a H →,求出各非终结符的FISTVT 和LASTVT 集合。
二、分析题:1、构造自动机,使得它能识别字母表{0,1}上以00结尾的符号串,将构造的自动机确定化,并写出相应的正规文法。
2、文法][S G :RT eT S → εDR T → εdR R → bd a D →,写出每个非终结符的FIRST 集和FOLLOW 集,并判断该文法是否为LL(1)文法。
3、若有文法][S G :AB S → εaBa A → εb A b B → (1)试证明该文法是SLR(1) 文法,并构造SLR(1)分析表。
(2)给出输入串aa # 的分析过程。
参考答案一、简答题1、构造一个文法使其生成的语言是不允许0打头的偶正整数集合。
8|6|4|2|ABC Z → 9|8|7|6|5|4|3|2|1→A ε|0|B AB B → |8|6|4|2|0→C2、文法][E G :T T E T E E -+→,F F T F T T /*→,i E F )(→,构造句型i T T T *+-的语法树,并指出该句型的短语、直接短语、句柄、素短语和最左素短语。
短语:T ,T-T ,i ,T*i ,T-T+T*i直接短语:T , i 句柄: T素短语(P72):T-T,i 最左素短语:T-T3 某LL(1)文法的预测分析表如下,请在下述分析过程表中填入输入串( a , a )$ 的分析过程。
编译原理作业答案
《编译原理》习题解答:第一次作业:P14 2、何谓源程序、目标程序、翻译程序、汇编程序、编译程序和解释程序?它们之间可能有何种关系?答:被翻译的程序称为源程序;翻译出来的程序称为目标程序或目标代码;将汇编语言和高级语言编写的程序翻译成等价的机器语言,实现此功能的程序称为翻译程序;把汇编语言写的源程序翻译成机器语言的目标程序称为汇编程序;解释程序不是直接将高级语言的源程序翻译成目标程序后再执行,而是一个个语句读入源程序,即边解释边执行;编译程序是将高级语言写的源程序翻译成目标语言的程序。
关系:汇编程序、解释程序和编译程序都是翻译程序,具体见P4 图 1.3。
P14 3、编译程序是由哪些部分组成?试述各部分的功能?答:编译程序主要由8个部分组成:(1)词法分析程序;(2)语法分析程序;(3)语义分析程序;(4)中间代码生成;(5)代码优化程序;(6)目标代码生成程序;(7)错误检查和处理程序;(8)信息表管理程序。
具体功能见P7-9。
P14 4、语法分析和语义分析有什么不同?试举例说明。
答:语法分析是将单词流分析如何组成句子而句子又如何组成程序,看句子乃至程序是否符合语法规则,例如:对变量x:= y 符合语法规则就通过。
语义分析是对语句意义进行检查,如赋值语句中x与y类型要一致,否则语法分析正确,语义分析则错误。
补充:为什么要对单词进行内部编码?其原则是什么?对标识符是如何进行内部编码的?答:内部编码从“源字符串”中识别单词并确定单词的类型和值;原则:长度统一,即刻画了单词本身,也刻画了它所具有的属性,以供其它部分分析使用。
对于标识符编码,先判断出该单词是标识符,然后在类别编码中写入相关信息,以表示为标识符,再根据具体标识符的含义编码该单词的值。
P38 1、设T1={11,010},T2={0,01,1001},计算:T2T1,T1*,T2+。
T2T1={011,0010,0111,01010,100111,1001010}T1*={ε,11,010,1111,11010,01011,010010……}T2+={0,01,1001,00,001,01001,010,0101……}P38-39 8、设有文法G[S]:S∷=aAbA∷=BcA | BB∷=idt |ε试问下列符号串(1)aidtcBcAb (2)aidtccb(4)abidt是否为该文法的句型或句子。
北语20秋《编译原理》作业3【标准答案】
北语20秋《编译原理》作业3【标准答案】
20秋《编译原理》作业3
试卷总分:100 得分:100
一、单选题 (共 1 道试题,共 5 分)
1.表达式(┐A∨B)∧(C∨D)的逆波兰表示为_____。
A.┐AB∨∧CD∨
B.A┐B∨CD∨∧
C.AB∨┐CD∨∧
D.A┐B∨∧CD∨
答案:B
二、多选题 (共 2 道试题,共 10 分)
2.一个LR(1) 项目可以看成()两个部分组成。
A.心
B.向前搜索符集合
C.分析表
D.分析函数
答案:AB
3.一个LR分析器由()组成。
A.驱动程序
B.分析函数
C.分析栈
D.向前搜索符集合
答案:ABC
三、判断题 (共 17 道试题,共 85 分)
4.在编译方式下执行源程序,易于查错,在程序执行中可以修改程序,但执行效率低。
答案:错误
5.两个正规集相等的必要条件是他们对应的正规式等价。
( )
答案:错误
6.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
( )
答案:错误
7.一个LR分析器由3个部分组成,其中分析表或分析函数,也可以称为驱动程序。
答案:错误
8.题目见图片{图}
答案:错误
9.静态数据区用于可变数据以及管理过程活动的控制信息。
答案:错误。
北语 18春《编译原理》
18春《编译原理》作业_1一、单选题( 每题4分, 共15道小题, 总分值60分)1.若文法G 定义的语言是无限集,则文法必然是_____。
A. 递归的B. 前后文无关的C. 二义性的D. 无二义性的答案:A2.将编译程序分成若干个"遍"是为了( )。
A. 提高程序的执行效率B. 使程序的结构更加清晰C. 利用有限的机器内存并提高机器的执行效率D. 利用有限的机器内存但降低了机器的执行效率答案B3.编译过程中, 语法分析器的任务就是_____。
(1) 分析单词是怎样构成的(2) 分析单词串是如何构成语句和说明的(3) 分析语句和说明是如何构成程序的(4) 分析程序的结构A. (2)(3)B. (2)(3)(4)C. (1)(2)(3)D. (1)(2)(3)(4)答案B4.编译程序绝大多数时间花在_____上。
A. 出错处理B. 词法分析C. 目标代码生成D. 管理表格答案:D5.与编译系统相比,解释系统_____。
A. 比较简单, 可移植性好, 执行速度快B. 比较复杂, 可移植性好, 执行速度快C. 比较简单, 可移植性差, 执行速度慢D. 比较简单, 可移植性好, 执行速度慢答案:D6.词法分析器用于识别_____。
A. 字符串B. 语句C. 单词D. 标识符7.设G 是一个给定的文法,S 是文法的开始符号,如果S->x( 其中x∈V*), 则称x 是文法G 的一个_____。
A. 候选式B. 句型C. 单词D. 产生式8.代码优化时所依据的是()。
A. 语法规则B. 词法规则C. 等价变换规则D. 语义规则9.文法分为四种类型,即0型、1型、2型、3型。
其中2型文法是_____。
A. 短语文法B. 正则文法C. 上下文有关文法D. 上下文无关文法10.代码生成阶段的主要任务是()A. 把高级语言翻译成汇编语言B. 把高级语言翻译成机器语言C. 把中间代码变换成依赖具体机器的目标代码D. 把汇编语言翻译成机器语言11.编译程序前三个阶段完成的工作是()。
编译原理作业(答案new)
第3章作业【编辑人:陈芳芳】1.写一文法,使其语言是偶正整数的集合。
要求:(1)允许0打头;(2)不允许0打头。
【解】:(1)允许0打头且含0的偶正整数集合的文法为:N—>(0|D|E)N|(E|0)D—>1|3|5|7|9E—>2|4|6|8(2) 不允许0打头的偶正整数集合的文法为:R—>(D|E)N|EN—>(0|D|E)N|(E|0)D—>1|3|5|7|9E—>2|4|6|82.一个上下文无关文法生成句子abbaa的推导树如下:SA B Sa S B B A aƐ b b a(1)给出该句子的相应的最左推导,最右推导。
(2)该文法的产生式集合P可能有哪些元素?(3)找出该句子的所有短语,简单短语,句柄。
【解】:(1)最左推导:S=>ABS=>aBS=>aSBBS=>aBBS=>abBS=>abbS=>abbAa=>abbaa最右推导:S=>ABS=>ABAa=>ABaa=>ASBBaa=>ASBbaa=>ASbbaa=>Abbaa=>abbaa (2) 产生式集合P:S—>ABS | Aa| ƐA—>aB—>SBB | b(3) 短语:a , Ɛ , b , bb , aa , abbaa直接短语:a , Ɛ , b句柄:a3、给出生成下述语言的上下文无关文法:(1){a n b n a m b m | n, m >= 0}(2){1n0m1m0n | n, m >= 0}【解】:(1)S—>AAA—>aAb | Ɛ(2)S—>1S0 | AA—>0A1 | Ɛ第4章课后作业1. 构造一个状态数最小的DFA,它接受∑={0,1}上所有倒数第二个字符为1的字符串。
【编辑人:胡志高】【解】:(1)构造相应的正规式:(0|1)* 1(0|1)(2)由正规式构造NFA,如下图:(3)NFA转化DFA① T0=ε-closure({0})={0}②运用子集构造法求DFA状态,如下表,其中T0为初态,T2、T3为终态:ε-closure(move(Ti,0))ε-closure(move(Ti,1)) T0={0}{0} {0,1}T1={0,1} {0,2} {0,1,2}T2={0,2} {0} {0,1}T3={0,1,2} {0,2} {0,1,2}③分别用0,1,2,3代表T0,T1,T2,T3,得DFA如下图:(4)最小化DFA①找DFA中等价状态,分析过程如下:P0=({0,1},{2,3})P1=({0},{1},{2},{3})经以上分析可知:0无等价状态。
北语19春《编译原理》作业3
(单选题)1: 编译程序是将高级语言程序翻译成( )。
A: 高级语言程序B: 机器语言程序C: 汇编语言程序D: 汇编语言或机器语言程序标准答题:(单选题)2: 汇编程序是将汇编语言程序翻译成()。
A: 高级语言程序B: 机器语言程序C: 汇编语言程序D: 汇编语言或机器语言程序标准答题:(单选题)3: _____是一种典型的解释型语言。
A: BASICB: CC: FORTRAND: PASCAL标准答题:(单选题)4: 编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过_____这几步: (1) 编辑 ? (2) 编译 ? (3) 连接 ? (4) 运行A: (1)(2)(3)(4)B: (1)(2)(3)C: (1)(3)D: (1)(4)标准答题:(单选题)5: 文法 G 所描述的语言是_____的集合。
A: 文法 G 的字母表 V 中所有符号组成的符号串B: 文法 G 的字母表 V 的闭包 V* 中的所有符号串C: 由文法的开始符号推出的所有终结符串D: 由文法的开始符号推出的所有符号串标准答题:(单选题)6: _____和代码优化部分不是每个编译程序都必需的。
A: 语法分析B: 中间代码生成C: 词法分析D: 目标代码生成标准答题:(多选题)7: 运行时的存储区常常划分为:()B: 静态数据区C: 栈区D: 堆区标准答题:(多选题)8: 四元式是一种比较普遍采用的中间代码形式,它的四个组成成分是()。
A: 算法opB: 第一运算对象ARG1C: 第二运算对象ARG2D: 运算结果RESULT标准答题:(多选题)9: 在编译过程中,语法分析器的任务是( )。
A: 分析单词是怎样构成的B: 分析单词串是如何构成语句和说明的C: 分析语句和说明是如何构成程序的D: 分析程序的结构标准答题:(多选题)10: 通常编译过程分成前端和后端,其中前端包括(),后端包括目标代码生成A: 语法分析B: 语义分析C: 中间代码生成D: 词法分析标准答题:(判断题)11: 如果一个数组所需要的存储空间的大小在编译时就已知道,则称此数组是动态数组。
编译原理课后答案 (3)
编译原理课后答案问题一计算机程序的执行是一个多阶段的过程,其中编译是其中的一环。
请问编译的三个主要阶段分别是什么?答:编译过程一般可以分为三个主要阶段,分别是词法分析、语法分析和代码生成。
下面分别对这三个阶段进行介绍。
1. 词法分析词法分析是编译过程的第一步,也是最基础的一步。
它的任务是将源代码中的字符序列分解成一个个具有独立含义的单词,这些单词被称为“记号”或“词法单元”。
词法分析器根据程序中每一个字符的组合规则,将其转化为一个个词法单元,并记录下词法单元的类型标记。
词法分析器的工作一般通过有限状态自动机来实现,它根据一定的词法规则进行扫描和分析。
2. 语法分析语法分析是编译过程的第二步,它接收词法分析器生成的词法单元流,根据语法规则进行分析,并生成一棵语法树。
语法分析的主要任务是确定输入程序的结构,检查程序的语法正确性,并生成用于后续处理的输入形式。
语法分析器一般采用的是自顶向下或自底向上的分析方法,常用的方法有递归下降法和LR(1)分析法。
3. 代码生成代码生成是编译过程的最后一步,它将语法分析生成的语法树转化为目标机器的可执行代码。
代码生成器通过遍历语法树,将每个语法树节点转化为相应的目标机器代码。
代码生成过程中需要考虑到目标机器的特性和限制,以及优化代码的效率和性能。
问题二请解释一下编译原理中的词法规则是什么?答:编译原理中的词法规则指的是一组规定词法单元模式的规则。
它描述了如何将输入字符序列转换为词法单元,并为每个词法单元定义了一个标记。
词法规则一般使用正则表达式来描述词法单元的模式。
编译器根据词法规则构建词法分析器,用于将源代码分割成一系列的词法单元。
词法规则的灵活性和准确性对编译过程的性能和结果都有较大的影响。
一个完整的词法规则一般包含以下几个部分:1.正则表达式:描述了词法单元的模式,使用特定的正则表达式语法来表示。
2.动作:描述了当词法单元匹配到模式时,需要执行的动作或处理过程。
编译原理作业
编译原理作业编译原理是计算机科学中一门重要的课程,主要研究如何将高级语言翻译成机器语言的过程。
在编译原理中,我们学习了许多关于编译器的基本概念和技术,包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。
下面将对这些内容进行详细介绍。
首先是词法分析。
词法分析是编译器中的第一个阶段,主要负责将源代码分解成一个个的词法单元。
词法单元是一个具有独立意义的最小单元,例如关键字、标识符、运算符和常数等。
词法分析器通常使用有限状态自动机来实现,通过正则表达式匹配将源代码分解成词法单元。
接下来是语法分析。
语法分析是编译器中的第二个阶段,主要负责验证源代码是否符合语法规则,并将其转换成一棵语法树。
语法树是一个抽象的表示形式,用于描述源代码的结构。
语法分析器通常使用上下文无关文法来实现,通过递归下降或者LR分析等算法来进行语法分析。
然后是语义分析。
语义分析是编译器中的第三个阶段,主要负责对源代码进行语义检查,并生成相应的中间代码。
语义检查包括类型检查、作用域检查和语义约束等。
中间代码是一种介于源代码和目标代码之间的抽象表示形式,通常以一种类似于三地址码的形式存在。
接着是中间代码生成。
中间代码生成是编译器中的第四个阶段,主要负责将源代码转换成中间代码。
中间代码可以是一种类似于汇编语言的形式,也可以是一种抽象的表示形式。
中间代码生成的目标是将源代码的语义信息完整地保留下来,并为后续的代码优化做好准备。
然后是代码优化。
代码优化是编译器中的第五个阶段,主要负责对中间代码进行优化,以提高程序的执行效率和资源利用率。
代码优化的目标是在不改变程序语义的前提下,尽可能地减少代码的执行时间和空间消耗。
常见的代码优化技术包括常量传播、复写传播、死代码消除、循环优化和内联等。
最后是目标代码生成。
目标代码生成是编译器中的最后一个阶段,主要负责将中间代码转换成目标代码。
目标代码是一种与计算机硬件体系结构密切相关的代码,通常是一种类似于汇编语言的形式。
编译原理作业参考答案
编译原理作业参考答案作业一一、是非题1.(×)2.(×)3.(×)4.(×)5.(×)6.(√)7. (√)8.(√)9.(√) 10.(×) 11.(√) 12.(√) 13.(√)二、填空题1.(词法分析),(语法分析),(中间代码生成),(代码优化),(目标代码生成)2.(单词符号),(语法单位)。
3.(源程序),(单词符号)4.(语法),(语义)5. (词法分析)、(语法分析)、(语义分析),(中间代码产生),(代码优化),(目标代码生成)6.(解释方式)7. (语法规则)8. (上下文无关文法)9. (自上而下分析法),(自下而上分析法)10. (规范推导)11. (最左归约)三、名词解释题:1.词法分析器-----执行词法分析的程序。
2. 自编译方式------先对语言的核心部分构造一个小小的编译程序,再以它为工具构造一个能够编译更多语言成分的较大编译程序。
如此扩展下去,就像滚雪球一样,越滚越大,最后形成人们所期待的整个编译程序。
3. 遍-----所谓“遍”就是对源程序或中间结果长头到尾扫描一次,并作有关的加工处理,生成新的中间结果或目标程序。
4. 编译程序-----一种翻译程序: 能够把某一种语言程序(称为源语言程序)转换成另一种语言(成为目标程序),而后着与前者在逻辑上是等价的。
5. 超前搜索-----所谓超前搜索是在词法分析过程中,有时为了确定词性,需超前扫描若干个字符。
6. 短语------令G是一个文法,S划文法的开始符号,假定αβδ是文法G的一个句型,如果有SαAδ且Aβ,则称β是句型αβδ相对非终结符A的短语。
7. 规范句型------由规范推导所得到的句型。
8. 句柄------一个句型的最左直接短语。
9. -规范推导-----最右推导又称为规范推导。
四、简答题:1. 正规式a ( a | b )*。
2.(a*b|b*a)={a,b,ab,ba,aab,bba……}3.状态转换图是一张有限方向图。
兰大编译原理18春平时作业3辅导资料
兰大《编译原理》18春平时作业31、C2、C3、A4、B5、B一、单选题共15题,60分1、编译程序是一种_____。
A汇编程序B翻译程序C解释程序D目标程序正确答案是:C2、变量应当()。
A持有左值B持有右值C既持有左值又持有右值D既不持有左值也不持有右值正确答案是:C3、使用解释程序时,在程序未执行完的情况下,______重新执行已执行的部分。
A也能B不能正确答案是:A4、编译程序与具体的机器( ),与具体的语言有关.A有关B无关正确答案是:B5、在语法分析处理中,FIRST集合、FOLLOW集合、SELECT集合均是()。
A非终极符集B终极符集C字母表D状态集正确答案是:B6、构造编译程序应掌握______。
A源程序B目标语言C编译方法D以上三项都是正确答案是:D7、代码代码优化的目的是( )A节省时间B节省空间C节省时间和空间D把编译程序进行等价交换正确答案是:C8、与编译系统相比,解释系统()。
A比较简单,可移植性好,执行速度快B比较复杂,可移植性好,执行速度快C比较简单,可移植性差,执行速度慢D比较简单,可移植性好,执行速度慢正确答案是:D9、过程的Display表中记录了_ _____。
A过程的连结数据B过程的嵌套层数C过程的返回地址D过程的入口地址正确答案是:B10、语法分析器则可以发现源程序中的()。
A语义错误B语法和语义错误C错误并校正D语法错误正确答案是:D11、在规范归约中,用_____来刻画可归约串。
A直接短语B句柄C最左素短语D素短语正确答案是:B12、代码优化可生成()的目标代码。
A运行时间较短B占用存储空间较小C运行时间短但占用内存空间大D运行时间短且占用存储空间小正确答案是:D13、动态存储分配可采用的分配方案是()。
A队式存储分配B栈式存储分配C线性存储分配D链式存储分配正确答案是:B14、若一个文法是递归的,则它所产生的语言的句子()。
A是无穷多个B是有穷多个C是可枚举的D个数是常量正确答案是:A15、解释程序处理语言时, 大多数采用的是_____方法。
编译原理作业题整理
编译原理作业题整理一、概述编译原理是计算机科学与技术领域的重要基础课程,主要研究编译器的设计与实现。
编译器是将高级语言程序翻译成机器语言的工具,它在软件开发过程中起着至关重要的作用。
为了帮助学生更好地理解和掌握编译原理的相关知识,以下是一些编译原理作业题整理。
二、词法分析1. 请编写一个正则表达式,用于匹配所有以字母开头,后跟零个或多个字母或数字的标识符。
2. 请编写一个正则表达式,用于匹配所有以0开头的八进制数。
3. 请编写一个正则表达式,用于匹配所有以1开头的二进制数。
三、语法分析1. 请给出以下文法的FIRST集和FOLLOW集:S -> aAB | bCDA -> cA | εB -> dC -> eC | εD -> f2. 请构造以下文法的LL(1)分析表:文法:S -> aAB | bCDA -> cA | εB -> dC -> eC | εD -> f3. 请给出以下文法的LR(0)项集族和DFA:文法:S -> L = RL -> * R | iR -> L四、语义分析1. 请给出以下语义规则的翻译方案:E -> E + T { E.val = E1.val + T.val }E -> T { E.val = T.val }T -> T * F { T.val = T1.val * F.val }T -> F { T.val = F.val }F -> ( E ) { F.val = E.val }F -> num { F.val = num.val }2. 请给出以下语义规则的中间代码生成方案:E -> E + T { t = newtemp(); gen(t, '+', E1.val, T.val); E.val = t; }E -> T { E.val = T.val }T -> T * F { t = newtemp(); gen(t, '*', T1.val, F.val); T.val = t; }T -> F { T.val = F.val }F -> ( E ) { F.val = E.val }F -> num { F.val = num.val }五、运行时环境1. 请简述静态作用域和动态作用域的区别。
(完整版)编译原理习题及答案(整理后)
8、规范推导是最左推导,故选 d。
9、由 T→T,…和 T→(… 得 FIRSTVT(T))={(,,)};
由 T→S 得 FIRSTVT(S)⊂FIRSTVT(T),而 FIRSTVT(S)={b,∧,(};即
FIRSTVT(T)={b,∧,(,,};
因此选 c。
10、d 11、c 12、b 13、b 14、b
标语言
第二章
一、单项选择题
1、文法 G:S→xSx|y 所识别的语言是 。
a. xyx
b. (xyx)* c. xnyxn(n≥0) d. x*yx*
2、文法 G 描述的语言 L(G)是指 。
a. L(G)={α|S⇒+ α , α∈VT*}
b. L(G)={α|S⇒* α, α∈VT*}
c. L(G)={α|S⇒* α,α∈(VT∪VN*)} d. L(G)={α|S⇒+ α, α∈(VT∪VN*)}
6、一个文法所有句型的集合形成该文法所能接受的语言。
五、简答题
1、句柄 2、素短语
3、语法树
4、归约
六、问答题
1、给出上下文无关文法的定义。
2、文法 G[S]:
() () () () ()
5、推导
S→aSPQ|abQ
QP→PQ
bP→bb
bQ→bc
cQ→cc (1)它是 Chomsky 哪一型文法? (2)它生成的语言是什么? 3、按指定类型,给出语言的文法。 L={aibj|j>i≥1}的上下文无关文法。 4、有文法 G:S→aAcB|Bd
a. 23 B. 42 c. 30 14、规范归约指 。
d. 17
a. 最左推导的逆过程
b. 最右推导的逆过程
东北师范大学编译原理18秋在线作业1-3答案
东北师范大学编译原理18秋在线作业1-3作业试题参考答案一、单选题共20题,60分1、算符优先文法的特点是文法的产生式中不含什么()。
A不含右递归B不含两个相邻的终结符C不含ε-产生式D不含左递归这道题选择:C2、通常把每个非终结符号的右部符号串称为该非终结符号的什么()。
A推导项B选择式C规则项D候选式这道题选择:D3、文法G:S→xSx|y所识别的语言是()。
Axy*xB(xyx)*Cxx*yxx*Dx*yx*这道题选择:D4、文法G的一棵语法树叶结点的自左至右排列是G的一个什么()。
A短语B句型C句柄D素短语这道题选择:B5、在语法分析处理中,FIRST集合、FOLLOW集合均是什么样的集合()。
A非终极符集B终极符集C字母表D状态集这道题选择:B6、若状态k含有项目“A→α?”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A→α”归约的语法分析方法是指哪一类方法()。
A算符优先分析法BLR(0)分析法CLR(1)分析法DSLR(1)分析法这道题选择:D7、编译程序中语法分析器接收以什么为单位的输入()。
A单词B表达式C产生式D句子这道题选择:A8、所谓NFA的确定化,是指对任给的NFA,都能相应地构造一DFA,使它们有相同的什么()。
A状态集B符号集C接受集D结点集这道题选择:C9、语法分析是依据语言的什么规则进行的()。
A语法B语义C语用D运行这道题选择:A10、设d是结点n的必经结点(即有d DOM n),若在流程图中,存在着从结点n到d的有向边,则称此有向边为流程图中的一条什么()。
A环路B环边C回路D回边这道题选择:D1-(b*c/(c-d)+(-b)*a)的逆波兰表示是什么()。
Aabc*cd-b-a*+/-Babc*cd-b-a*+/-Cabc*cd-/b-a*+-Dabc*/cd-b-a*+-这道题选择:C12、编译程序与解释程序的主要区别在于什么()。
A单用户与多用户的差别B对用户程序的查错能力C机器执行效率D是否生成目标代码这道题选择:D13、表达式(┐a∨b)∧(c∨d)的逆波兰表示是什么()。
《编译原理》课后习题答案第三章第3章文法和语言第1
《编译原理》课后习题答案第三章第3章文法和语言第1《编译原理》课后习题答案第三章第3 章文法和语言第1 题文法G=({A,B,S},{a,b,c},P,S)其中P 为:S→Ac|aBA→abB→bc写出L(G[S])的全部元素。
答案:L(G[S])={abc}第2 题文法G[N]为:N→D|NDD→0|1|2|3|4|5|6|7|8|9G[N]的语言是什么?答案:G[N]的语言是V+。
V={0,1,2,3,4,5,6,7,8,9}N=>ND=>NDD.... =>NDDDD...D=>D......D或者:允许0 开头的非负整数?第3题为只包含数字、加号和减号的表达式,例如9-2+5,3-1,7等构造一个文法。
答案:G[S]:S->S+D|S-D|DD->0|1|2|3|4|5|6|7|8|9第4 题已知文法G[Z]:Z→aZb|ab写出L(G[Z])的全部元素。
盛威网(/doc/dc3359286.html,)专业的计算机学习网站 1《编译原理》课后习题答案第三章答案:Z=>aZb=>aaZbb=>aaa..Z...bbb=> aaa..ab...bbbL(G[Z])={anbn|n>=1}第5 题写一文法,使其语言是偶正整数的集合。
要求:(1) 允许0 打头;(2)不允许0 打头。
答案:(1)允许0 开头的偶正整数集合的文法E→NT|DT→NT|DN→D|1|3|5|7|9D→0|2|4|6|8(2)不允许0 开头的偶正整数集合的文法E→NT|DT→FT|GN→D|1|3|5|7|9D→2|4|6|8F→N|0G→D|0第6 题已知文法G:<表达式>::=<项>|<表达式>+<项><项>::=<因子>|<项>*<因子><因子>::=(<表达式>)|i试给出下述表达式的推导及语法树。
编译原理作业参考答案
第1章引言1、解释下列各词源语言:编写源程序的语言(基本符号,关键字),各种程序设计语言都可以作为源语言。
源程序: 用接近自然语言(数学语言)的源语言(基本符号,关键字)编写的程序,它是翻译程序处理的对象。
目标程序: 目标程序是源程序经过翻译程序加工最后得到的程序。
目标程序(结果程序)一般可由计算机直接执行。
低级语言:机器语言和汇编语言。
高级语言:是人们根据描述实际问题的需要而设计的一个记号系统。
如同自然语言(接近数学语言和工程语言)一样,语言的基本单位是语句,由符号组和一组用来组织它们成为有确定意义的组合规则。
翻译程序: 能够把某一种语言程序(源语言程序)改变成另一种语言程序(目标语言程序),后者与前者在逻辑上是等价的。
其中包括:编译程序,解释程序,汇编程序。
编译程序: 把输入的源程序翻译成等价的目标程序(汇编语言或机器语言),然后再执行目标程序(先编译后执行),执行翻译工作的程序称为编译程序。
解释程序: 以该语言写的源程序作为输入,但不产生目标程序。
按源程序中语句动态顺序逐句的边解释边执行的过程,完成翻译工作的程序称为解释程序。
2、什么叫“遍”?指对源程序或源程序的中间形式(如单词,中间代码)从头到尾扫描一次,并作相应的加工处理,称为一遍。
3、简述编译程序的基本过程的任务。
编译程序的工作是指从输入源程序开始到输出目标程序为止的整个过程,整个过程可以划分5个阶段。
词法分析:输入源程序,进行词法分析,输出单词符号。
语法分析:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位,并判断输入串是否构成语法正确的“程序”。
中间代码生成:按照语义规则把语法分析器归约(或推导)出的语法单位翻译成一定形式的中间代码。
优化:对中间代码进行优化处理。
目标代码生成:把中间代码翻译成目标语言程序。
4、编译程序与解释程序的区别?编译程序生成目标程序后,再执行目标程序;然而解释程序不生成目标程序,边解释边执行。
编译原理习题及答案1~3
2021/10/10
2
《遍”是为了 。
A.提高程序的执行效率
B.使程序的结构更加清晰
C.利用有限的机器内存并提高机器的执行效率
D.利用有限的机器内存但降低了机器的执行效
率
(3) 构造编译程序应掌握 。
表2-1 状态转换矩阵
I
Ia
Ib
{x}
{x,y}
{y}
{y}
—
{x,y}
{x,y}
{x,y}
{x,y}
将转换矩阵中的所有子集重新命名,形成表2-2所 示的状态转换矩阵,即得到
S
a
b
0
2
1
1
—
2
2
2
2
2021/10/10
21
《编译原理教程》习题解析
22
其状态转换图如图2-3所示。
图2-3 习题2.3的DFA M′
(8) 由于正则闭包R+=R*R=RR*,故 (a|b)*(a|b)=(a|b)(a|b)*。故选A。
2021/10/10
17
《编译原理教程》习题解析
18
2.2 什么是扫描器?扫描器的功能是什么? 【解答】 扫描器就是词法分析器,它接受输 入的源程序,对源程序进行词法分析并识别出一 个个单词符号,其输出结果是单词符号,供语法 分析器使用。通常把词法分析器作为一个子程序, 每当语法分析器需要一个单词符号时就调用这个 子程序。每次调用时,词法分析器就从输入串中 识别出一个单词符号交给语法分析器。
4
《编译原理教程》习题解析
5
【解答】 (1) 编译程序可以将用高级语言编写的源程序转换成 与之在逻辑上等价的目标程序,而目标程序可以是汇编语 言程序或机器语言程序。故选A。 (2) 分多遍完成编译过程可使整个编译程序的逻辑结 构更加清晰。故选B。 (3) 构造编译程序应掌握源程序、目标语言和编译方 法这三方面内容。故选D。
编译原理样题3(有答案
编译原理样题一选择题【】1.____型文法也称为正规文法。
[A] 0 [B] 1 [C] 2 [D] 3【】2.____文法不是LL(1)的。
[A] 递归 [B] 右递归 [C] 2型 [D] 含有公共左因子的【】3.文法E→E+E|E*E|i的句子i*i+i*i的不同语法分析树的总数为______。
[A]1 [B]3 [C]5 [D]7【】4.四元式之间的联系是通过实现。
[A]临时变量 [B]指示器 [C]符号表 [D]程序变量【】5.同心集合并可能会产生的新冲突为。
[A]二义 [B]移进/移进 [C]移进/归约[D]归约/归约【】6.代码优化时所依据的是。
[A]语法规则 [B]词法规则 [C]等价变换规则 [D]语义规则【】7.表达式a-(-b)*c的逆波兰表示为。
[A]a-b@c* [B]ab@c*- [C]ab@- [D]ab@c-* (注:@为单目减运算符)【】8.过程的DISPLAY表记录了。
[A]过程的连接数据[B]过程的嵌套层次[C]过程的返回地址 [D]过程的入口地址二填空题1.编译过程的六个阶段为:词法分析、、语义分析、代码优化和目标代码生成。
2.词法分析阶段的任务式从左到右扫描,从而逐个识别。
3.对于文法G1和G2,若有,则称文法G1和G2是等价的。
4.对于文法G[E]:E→T|E+T T→F|T*F F→P^F|P P→(E)|i,句型T+T*F+i的句柄是,最左素短语是。
所谓素短语是指这样的一个短语,它至少含有一个终结符,并且,除它自身之外不再含任何更小的素短语。
所谓最左素短语是指处于句型最左边的那个素短语。
如,P*P和i是句型P*P+i的素短语,而P*P 是它的最左素短语。
5.最右推导的逆过程称为,也称为。
6.规范规约中的可规约串是,算符优先分析中的可规约串是。
7.(A∨ B)∧(C∨ ¬D∧ E)的逆波兰式是。
8.在属性文法中文法符号的两种属性分别称为和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
------------------------------------------------------------------------------------------------------------------------------ (单选题) 1: 编译程序是将高级语言程序翻译成( )。
A: 高级语言程序B: 机器语言程序C: 汇编语言程序D: 汇编语言或机器语言程序正确答案:(单选题) 2: 汇编程序是将汇编语言程序翻译成()。
A: 高级语言程序B: 机器语言程序C: 汇编语言程序D: 汇编语言或机器语言程序正确答案:(单选题) 3: _____是一种典型的解释型语言。
A: BASICB: CC: FORTRAND: PASCAL正确答案:(单选题) 4: 编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过_____这几步: (1) 编辑 ? (2) 编译 ? (3) 连接 ? (4) 运行A: (1)(2)(3)(4)B: (1)(2)(3)C: (1)(3)D: (1)(4)正确答案:(单选题) 5: 文法 G 所描述的语言是_____的集合。
A: 文法 G 的字母表 V 中所有符号组成的符号串B: 文法 G 的字母表 V 的闭包 V* 中的所有符号串C: 由文法的开始符号推出的所有终结符串D: 由文法的开始符号推出的所有符号串正确答案:(单选题) 6: _____和代码优化部分不是每个编译程序都必需的。
A: 语法分析B: 中间代码生成C: 词法分析D: 目标代码生成正确答案:(多选题) 1: 运行时的存储区常常划分为:()A: 目标区B: 静态数据区C: 栈区D: 堆区正确答案:------------------------------------------------------------------------------------------------------------------------------ (多选题) 2: 四元式是一种比较普遍采用的中间代码形式,它的四个组成成分是()。
A: 算法opB: 第一运算对象ARG1C: 第二运算对象ARG2D: 运算结果RESULT正确答案:(多选题) 3: 在编译过程中,语法分析器的任务是( )。
A: 分析单词是怎样构成的B: 分析单词串是如何构成语句和说明的C: 分析语句和说明是如何构成程序的D: 分析程序的结构正确答案:(多选题) 4: 通常编译过程分成前端和后端,其中前端包括(),后端包括目标代码生成A: 语法分析B: 语义分析C: 中间代码生成D: 词法分析正确答案:(判断题) 1: 如果一个数组所需要的存储空间的大小在编译时就已知道,则称此数组是动态数组。
A: 错误B: 正确正确答案:(判断题) 2: 一个语义子程序描述了一个文法所对应的翻译工作。
( )A: 错误B: 正确正确答案:(判断题) 3: 编译程序与具体的机器有关,与具体的语言无关。
( )A: 错误B: 正确正确答案:(判断题) 4: 若一个文法中存在某个句子,它有两个不同的最左(最右)推导,则这个文法是二义。
A: 错误B: 正确正确答案:(判断题) 5: 同心集的合并有可能产生“归约/归约”冲突。
( )A: 错误B: 正确正确答案:(判断题) 6: 对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。
( )A: 错误B: 正确------------------------------------------------------------------------------------------------------------------------------ 正确答案:(判断题) 7: 最左归约也称为规范归约。
( )A: 错误B: 正确正确答案:(判断题) 8: 逆波兰表示法表示表达式时无需使用括号。
( )A: 错误B: 正确正确答案:(判断题) 9: 静态数据区用于可变数据以及管理过程活动的控制信息。
A: 错误B: 正确正确答案:(判断题) 10: 题目见图片A: 错误B: 正确正确答案:(判断题) 11: 解释程序适用于 COBOL 和 FORTRAN 语言。
( )A: 错误B: 正确正确答案:(判断题) 12: 若过程p第k次被调用,则p的DISPLAY表中就有k+1个元素。
A: 错误B: 正确正确答案:(判断题) 13: 非终结符可以有综合属性,但不能有继承属性。
( )A: 错误B: 正确正确答案:(判断题) 14: 所有的编译程序都要进行优化阶段。
A: 错误B: 正确正确答案:(判断题) 15: 编译程序是对高级语言程序的解释执行。
( )A: 错误B: 正确正确答案:(单选题) 1: 编译程序是将高级语言程序翻译成( )。
A: 高级语言程序B: 机器语言程序C: 汇编语言程序D: 汇编语言或机器语言程序正确答案:------------------------------------------------------------------------------------------------------------------------------ (单选题) 2: 汇编程序是将汇编语言程序翻译成()。
A: 高级语言程序B: 机器语言程序C: 汇编语言程序D: 汇编语言或机器语言程序正确答案:(单选题) 3: _____是一种典型的解释型语言。
A: BASICB: CC: FORTRAND: PASCAL正确答案:(单选题) 4: 编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过_____这几步: (1) 编辑 ? (2) 编译 ? (3) 连接 ? (4) 运行A: (1)(2)(3)(4)B: (1)(2)(3)C: (1)(3)D: (1)(4)正确答案:(单选题) 5: 文法 G 所描述的语言是_____的集合。
A: 文法 G 的字母表 V 中所有符号组成的符号串B: 文法 G 的字母表 V 的闭包 V* 中的所有符号串C: 由文法的开始符号推出的所有终结符串D: 由文法的开始符号推出的所有符号串正确答案:(单选题) 6: _____和代码优化部分不是每个编译程序都必需的。
A: 语法分析B: 中间代码生成C: 词法分析D: 目标代码生成正确答案:(多选题) 1: 运行时的存储区常常划分为:()A: 目标区B: 静态数据区C: 栈区D: 堆区正确答案:(多选题) 2: 四元式是一种比较普遍采用的中间代码形式,它的四个组成成分是()。
A: 算法opB: 第一运算对象ARG1C: 第二运算对象ARG2D: 运算结果RESULT正确答案:------------------------------------------------------------------------------------------------------------------------------ (多选题) 3: 在编译过程中,语法分析器的任务是( )。
A: 分析单词是怎样构成的B: 分析单词串是如何构成语句和说明的C: 分析语句和说明是如何构成程序的D: 分析程序的结构正确答案:(多选题) 4: 通常编译过程分成前端和后端,其中前端包括(),后端包括目标代码生成A: 语法分析B: 语义分析C: 中间代码生成D: 词法分析正确答案:(判断题) 1: 如果一个数组所需要的存储空间的大小在编译时就已知道,则称此数组是动态数组。
A: 错误B: 正确正确答案:(判断题) 2: 一个语义子程序描述了一个文法所对应的翻译工作。
( )A: 错误B: 正确正确答案:(判断题) 3: 编译程序与具体的机器有关,与具体的语言无关。
( )A: 错误B: 正确正确答案:(判断题) 4: 若一个文法中存在某个句子,它有两个不同的最左(最右)推导,则这个文法是二义。
A: 错误B: 正确正确答案:(判断题) 5: 同心集的合并有可能产生“归约/归约”冲突。
( )A: 错误B: 正确正确答案:(判断题) 6: 对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。
( )A: 错误B: 正确正确答案:(判断题) 7: 最左归约也称为规范归约。
( )A: 错误B: 正确正确答案:(判断题) 8: 逆波兰表示法表示表达式时无需使用括号。
( )------------------------------------------------------------------------------------------------------------------------------ A: 错误B: 正确正确答案:(判断题) 9: 静态数据区用于可变数据以及管理过程活动的控制信息。
A: 错误B: 正确正确答案:(判断题) 10: 题目见图片A: 错误B: 正确正确答案:(判断题) 11: 解释程序适用于 COBOL 和 FORTRAN 语言。
( )A: 错误B: 正确正确答案:(判断题) 12: 若过程p第k次被调用,则p的DISPLAY表中就有k+1个元素。
A: 错误B: 正确正确答案:(判断题) 13: 非终结符可以有综合属性,但不能有继承属性。
( )A: 错误B: 正确正确答案:(判断题) 14: 所有的编译程序都要进行优化阶段。
A: 错误B: 正确正确答案:(判断题) 15: 编译程序是对高级语言程序的解释执行。
( )A: 错误B: 正确正确答案:。