《编译原理》课程研讨题(2016)
- 格式:pdf
- 大小:398.55 KB
- 文档页数:10
编译原理题库
1. 什么是编译原理?
编译原理是研究将高级程序语言翻译成为机器语言的原理和方法的学科。
2. 编译器的主要功能是什么?
编译器的主要功能包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。
3. 什么是词法分析?
词法分析是将输入的字符流转化为标记流的过程。
4. 什么是语法分析?
语法分析是将词法分析得到的标记流转化为语法树的过程。
5. 什么是语义分析?
语义分析是对语法树进行解析,检查程序中是否存在语义错误或不符合语言规范的地方。
6. 什么是中间代码生成?
中间代码生成是将语义分析得到的语法树转化为中间表示形式,以便进行后续的代码优化和目标代码生成。
7. 什么是代码优化?
代码优化是对中间代码进行优化,以提高程序的执行效率和空间利用率。
8. 什么是目标代码生成?
目标代码生成是将优化后的中间代码转化为机器语言的过程。
9. 什么是语法制导翻译?
语法制导翻译是一种以语法规则为基础,通过对语法树的遍历和语义规则的应用来进行翻译的方法。
10. 什么是LL(1)文法?
LL(1)文法是一种上下文无关文法,它具有左递归和左因子的特点,并且在进行预测分析时每个非终结符的每个可能产生式都有唯一的选择。
第一章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、使用可以定义一个程序的意义。
a.语义规则b.语法规则c.产生规则d.词法规则7、词法分析器的输入是。
a.单词符号串b.源程序c.语法单位d.目标程序8、中间代码生成时所遵循的是- 。
a.语法规则b.词法规则c.语义规则d.等价变换规则9、编译程序是对。
a.汇编程序的翻译b.高级语言程序的解释执行 c.机器语言的执行d.高级语言的翻译10、语法分析应遵循。
a.语义规则b.语法规则c.构词规则d.等价变换规则二、多项选择题1、编译程序各阶段的工作都涉及到。
a.语法分析b.表格管理c.出错处理d.语义分析e.词法分析2、编译程序工作时,通常有阶段。
a.词法分析b.语法分析c.中间代码生成d.语义检查e.目标代码生成三、填空题1、解释程序和编译程序的区别在于。
2、编译过程通常可分为5个阶段,分别是、语法分析、代码优化和目标代码生成。
3、编译程序工作过程中,第一段输入是,最后阶段的输出为程序。
4、编译程序是指将程序翻译成程序的程序。
单选解答1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。
2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。
3、对编译而言,变量既持有左值又持有右值,故选c。
4、编译程序打交道最多的就是各种表格,因此选d。
5、目标代码包括汇编指令代码、可重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。
编译原理试题参考答案编译原理试题参考答案编译原理是计算机科学中的一门重要课程,它研究的是将高级语言源代码转换成机器语言的过程。
在学习编译原理的过程中,试题是一种常见的考核方式。
下面是一些编译原理试题的参考答案,希望对大家的学习有所帮助。
1. 什么是编译器?编译器是一种将高级语言源代码转换成机器语言的程序。
它包括了词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等多个阶段。
编译器的主要作用是将高级语言源代码转换成可执行的机器语言程序。
2. 什么是词法分析?词法分析是编译器的第一个阶段,它将源代码分解成一个个的词法单元,比如关键字、标识符、常量和运算符等。
词法分析器通常使用有限自动机来实现,它可以根据事先定义好的词法规则来识别源代码中的词法单元。
3. 什么是语法分析?语法分析是编译器的第二个阶段,它将词法分析得到的词法单元组织成一个语法树。
语法分析器通常使用上下文无关文法来描述语法规则,并通过递归下降、LL(1)分析或LR分析等算法来进行语法分析。
4. 什么是语义分析?语义分析是编译器的第三个阶段,它对语法树进行语义检查和语义规则的处理。
语义分析器通常会进行类型检查、符号表管理和语义规则的处理,以确保源代码的语义正确性。
5. 什么是中间代码生成?中间代码生成是编译器的第四个阶段,它将语法树转换成一种中间表示形式,比如三地址码、虚拟机代码或抽象语法树。
中间代码是一种与具体机器无关的表示形式,它方便后续的代码优化和目标代码生成。
6. 什么是代码优化?代码优化是编译器的第五个阶段,它通过对中间代码的分析和变换,来改进程序的执行效率和资源利用率。
代码优化的目标是在保持程序语义不变的前提下,尽可能地减少程序的执行时间和资源消耗。
7. 什么是目标代码生成?目标代码生成是编译器的最后一个阶段,它将中间代码转换成目标机器的机器语言程序。
目标代码生成器通常会进行寄存器分配、指令选择和指令调度等操作,以生成高效的目标代码。
《编译原理》考试试题及答案(附录)一、判断题: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.扫描器的任务是从()中识别出一个个()。
参考答案一、单项选择题(共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 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. 解释编译原理的定义,同时给出编译器的作用。
2. 简要描述编译过程中的四个基本步骤。
3. 解释词法分析器的功能和作用。
4. 解释语法分析器的功能和作用。
答案:
1. 编译原理是研究如何将高级语言程序转化为等价机器语言程序的一门学科。
编译器是将高级语言文本转换成等价的机器语言的软件工具。
它负责将源代码转化为目标代码,以便计算机能够理解和执行。
2. (1) 词法分析:将源代码分解成一系列单词或标记。
(2) 语法分析:根据语法规则组织单词或标记形成语法树。
(3) 语义分析:分析语法树以检测语义错误。
(4) 代码生成:根据语法树生成目标代码。
3. 词法分析器的功能是将源代码分解成一系列单词或标记。
它将源代码读取为字符流,然后将这些字符组成单词,同时可以去除空格、注释等不具有实际意义的内容。
词法分析器的作用是为语法分析器提供正确的单词序列,为后续的语义分析和代
码生成步骤建立基础。
4. 语法分析器的功能是根据语法规则组织单词或标记形成语法树。
它通过构建语法树来分析源代码的语法结构,同时可以检测语法错误。
语法分析器的作用是为后续的语义分析和代码生成步骤提供一个结构化的表示形式,便于后续的处理和转换。
《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个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.( )源程序B.()目标语言C.()编译方法D.( )以上三项都是6.四元式之间的联系是通过_____实现的。
《编译原理》在计算机专业中的地位--第7组1.编译原理课程在计算机专业中的地位《编译原理》课程是计算机专业必须的重要基础课。
编译原理是计算机得以普及的关键技术,它拉近了计算机与一般人的距离,使计算机发展不再仅仅是依靠一些科学家,可以让更多人的智慧运用到计算机的改进中来,使计算机技术的到了空前的发展。
在大学开设编译原理这门课程,这门课程关注的是编译器方面的产生原理和技术问题,在计算机的领域里占着及其重要的地位,它不仅是大学计算机专业必修的一门课程。
作为计算机专业的学生应该是本方面的专业人士,需要从更基础的方面,一般人很难理解的方面去更进一步的发展,这样才能更好的为其他专业的人进行更好的服务。
没有翻译程序,计算机就会受到限制,很多工作无法完成。
正是编译程序、解释程序、汇编程序等翻译程序,我们才能将简单的源语言通过翻译程序的工作让计算机完成各种复杂的工作,并且大大提高了效率。
2.为什么要学习编译原理课程?深入学习《编译原理》它所涉及到的知识能够加深我们对语言开发,编译系统的理解,培养我们的思维方式。
如今计算机发展迅速,系统的理论基础可以让我们在将来更好地适应新技术和创造新技术,学习并掌握更深入的计算机知识才能使我们在计算机专业立于不败之地。
编译原理只要研究算法的问题,相对其它来说,比较复杂,比较专注解决一种算法。
通过我们这段时间的学习,只要学习到了真正的内容,在我们毕业以后,无论是工作上还是业余中如果想编一点稍微有一些智能的程序,必然要用到。
并且编译原理一直是各校特高校计算机专业的必修课,也是某些学校的计算机专业硕士生入学面试和博士入学考试必考。
编译原理课程在我国计算机专业人材培养中起了很重要的作用,开发具有自主知识产权的计算机系统软硬件,需要编译原理课程继续发挥作用。
当今社会竞争激烈,计算机已进入各个方向,几乎每个工科专业都会涉及计算机的课程,周围很多同学也报考了计算机2级。
因此,一些计算机专业的岗位不仅计算机专业的学生才能做,计算机专业的毕业生优势减少,而本身计算机专业人数很多,毕业后就业压力山大。
第一次研讨、第一批(第3周)1.讨论:(1)编译方法与解释方法的主要区别(2)编译程序组合中分端(前端/后端)和分遍(单遍/多遍)的作用(3)编译程序生成方法中自编译与自展的含义2.编写PL/0程序,功能:输入正整数n,求sum = 1! + 2 ! + ... + n!3.扩充PL/0语言文法的定义,增加实数类型和数组类型。
例:Var i:integer;r:real;A:array[1..10]of real;……A[i]:=r;4.设有下列文法G1[S]和G2[S]:1)指出文法的类型2)证明两者等价G1[S]:S→aAb | bBaA→aA | aB→Bb | bG2[S]:S→aA | bBA→aA | aCB→bB | bDC→bD→a5. 构造一个文法,使其语言是奇数集,且每个奇数不以0开头。
6.文法G[S] 的一个句子abbba 的语法树如下图:SA B aA b b Ba b1) G[S]可能包含哪些产生式?2) 给出句子abbba的规范推导。
3) 求出句子abbba 的句柄。
7.设有上下文无关文法G[S]:S→aAb A→aB A→a B→bA B→b 试构造与G[S]等价的正规文法。
8 实验一识别标识符(A)第一次研讨、第二批(第4周)1.编写PL/0程序,输入正整数n、x1、x2、…、x n,计算:S= ∑ x i/i! i=1~n。
2.构造下列语言的文法,并分析比较(1)L1(G)={a n b n|n≥1}(2)L2(G)={(ab) n|n≥1}(3)L3(G)={a n b m|n,m≥0}(4)L4(G)={a n b m|n,m≥1}3.定义一个文法,产生表达式E:1)含有双目运算符+,*2)+ 的优先级高于*3)+ 右结合,* 左结合4)运算对象为标识符i5)可用括号改变算符的优先级4.扩充PL/0语言文法的定义, 增加for语句的功能。
for语句的示例如下:for i:= 1 to 100 do s:=s+i;5.定义一个文法,产生下列语言:该语言由a、b符号串组成,串中a和b的个数相同6.证明下列文法为二义文法(能否转换为等价的非二义文法?)⑴G1[S]:S→A A→AA A→aAb A→ab⑵G2[S]:S→aSb S→Sb S→b7.试写出V T={0,1},分别满足下述要求的正则表达式:⑴所有以1开始和0结束的符号串。
编译原理习题答案编译原理习题答案编译原理是计算机科学中的重要课程,它研究的是如何将高级程序语言翻译成机器语言的过程。
在学习编译原理的过程中,习题是必不可少的一部分。
通过解答习题,我们可以更好地理解和掌握编译原理的相关知识。
下面是一些编译原理习题的答案,希望对大家的学习有所帮助。
1. 什么是编译器?答:编译器是一种将高级程序语言翻译成机器语言的程序。
它接收源程序作为输入,经过词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等阶段的处理,最终生成可执行的目标程序。
2. 什么是词法分析?答:词法分析是编译器的第一阶段,它将源程序分割成一个个词素(token),并识别出每个词素的类型。
常见的词素类型包括关键字、标识符、常量、运算符和界符等。
3. 什么是语法分析?答:语法分析是编译器的第二阶段,它根据词法分析得到的词素序列,判断它们是否符合给定的语法规则。
语法分析使用的是上下文无关文法,常用的语法分析方法有LL(1)分析和LR(1)分析等。
4. 什么是语义分析?答:语义分析是编译器的第三阶段,它对源程序进行语义检查,并生成中间代码。
语义分析主要包括类型检查、作用域分析和语义动作等。
5. 什么是中间代码生成?答:中间代码生成是编译器的第四阶段,它将源程序转换成一种中间表示形式,以便进行代码优化和目标代码生成。
常见的中间表示形式有抽象语法树(AST)、三地址码和四元式等。
6. 什么是代码优化?答:代码优化是编译器的第五阶段,它通过对中间代码进行分析和变换,以提高目标程序的执行效率。
常见的代码优化技术包括常量传播、公共子表达式消除和循环优化等。
7. 什么是目标代码生成?答:目标代码生成是编译器的最后一阶段,它将中间代码转换成特定机器的目标代码。
目标代码可以是汇编语言代码或机器语言代码,它可以直接在目标机器上执行。
8. 什么是语法制导翻译?答:语法制导翻译是一种将源程序翻译成目标代码的方法,它将语义动作嵌入到语法规则中,以实现翻译的过程。
编译原理样题一选择题【】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.下面说法正确的是:A 一个正规文法也一定是二型文法B 一个二型文法也一定能有一个等价的正规文法2.文法G[A]:A→b A→AB B→Ab B→a是( ):A 二型文法B 正规文法3.下面说法正确的是( ):A lex是一个词法分析器B yacc是一个语法分析器的生成器4.一个LR(1)文法合并同心集后,如果不是LALR(1)文法必定存在( ):A 移进--归约冲突B 归约--归约冲突5.7.5 PL/0语言编译程序使用递归子程序法进行语法分析,他的文法必须满足( ):A LL(1)文法B SLR(1) 文法二、问答题问答第1题(6分)试对 repeat x:=b until b>a or (b<a and b=d) 的四元式序列给出第四区段应回填的指令地址,并指出真假出口链和链头及回填的次序。
应回填的值回填的次序真链头 E.true=(1) x:= b 真出口链( )(2) if b>a goto ( ) ( ) 真出口链( )(3) goto ( ) ( )(4) if b<a goto ( ) ( ) 假链头 E.false=(5) goto ( ) ( ) 假出口链( )(6) if b=d goto ( ) ( )(7) goto ( ) ( )(8) ...问答第2题(10分)某语言的拓广文法G′为:(0) S′→S(1) S → Db|B(2) D → d|ε(3) B → Ba|ε证明G不是LR(0)文法而是SLR(1)文法,请给出SLR(1)分析表。
问答第3题(5分)给出文法G[S]的LR(1)项目集规范族中I0项目集的全体项目。
G[S]为:S →S;V|VV →VaA|AA →b(S)| εI0:问答第4题(5分)文法G[M]及其LR分析表如下,请给出对串dada#的分析过程。
G[M]: 1) S →VdB2) V →e3) V →ε 4) B →a5) B →Bda 6) B →ε状态ACTION GOTOd e a # S B V0 r3 S3 1 21 acc2 S43 r24 r6 S5 r6 65 r4 r46 S7 r17 S88 r5 r5问答第5题(7分)(1) 给出下列PL/0示意程序中当程序执行到D过程调用A过程后(即执行A过程体时)的栈式存储分配布局和用Display显示表时A过程最新活动记录的内容。
一、答复以下问题:(30分)1.什么是属性文法?什么是属性文法?它们之间有什么关系?解答:属性文法是只含有综合属性的属性文法。
〔2分〕属性文法要求对于每个产生式A X1X2…,其每个语义规那么中的每个属性或者是综合属性,或者是的一个继承属性,且该属性仅依赖于:(1)产生式的左边符号X12…1的属性;(2)A的继承属性。
〔2分〕属性文法是属性文法的特例。
〔2分〕2.什么是句柄?什么是素短语?一个句型的最左直接短语称为该句型的句柄。
〔3分〕素短语是这样的一个短语,它至少包含一个终结符并且不包含更小的素短语。
〔3分〕3.划分程序的根本块时,确定根本块的入口语句的条件是什么?解答:〔1〕程序第一个语句,或〔2〕能由条件转移语句或无条件转移语句转移到的语句,或〔3〕紧跟在条件转移语句后面的语句。
4.(6分)运行时的表的内容是什么?它的作用是什么?答:表是嵌套层次显示表。
每当进入一个过程后,在建立它的活动记录区的同时建立一张嵌套层次显示表.假定现在进入的过程层次为i,那么它的表含有1个单元,自顶向下每个单元依次存放着现行层、直接外层、…、直至最外层(主程序,0层)等每层过程的最新活动记录的起始地址。
通过表可以访问其外层过程的变量。
5.(6分)对以下四元式序列生成目标代码:*C*2其中,H是根本块出口的活泼变量,R0与R1是可用存放器答:R0,BR0,CR1,ER1,FR0,R1R0,2R0,H二、设={0,1}上的正规集S由倒数第二个字符为1的所有字符串组成,请给出该字集对应的正规式,并构造一个识别该正规集的。
(8分)答:构造相应的正规式:(0|1)*1(0|1) (3分): (2分)1 11012340 0确定化:(3分)I0I1I{0,1,2}{1,2}{1,2,3}{1,2}{1,2}{1,2,3}{1,2,3} {1,2,4} {1,2,3,4} {1,2,4} {1,2} {1,2,3} {1,2,3,4}{1,2,4}{1,2,3,4}10 1 0 00 1 1 1 三、写一个文法使其语言为L(G)={ | ≥1}。
一、单项选择题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、编译程序是对。
a.汇编程序的翻译b.高级语言程序的解释执行c.机器语言的执行d.高级语言的翻译7、语法分析应遵循。
a.语义规则b.语法规则c.构词规则d.等价变换规则二、多项选择题1、编译程序各阶段的工作都涉及到。
a.语法分析b.表格管理c.出错处理d.语义分析e.词法分析2、编译程序工作时,通常有阶段。
a.词法分析b.语法分析c.中间代码生成d.语义检查e.目标代码生成三、填空题1、解释程序和编译程序的区别在于。
2、编译过程通常可分为5个阶段,分别是、语法分析、代码优化和目标代码生成。
3、编译程序工作过程中,第一段输入是,最后阶段的输出为程序。
4、编译程序是指将程序翻译成程序的程序。
一、单项选择题1、文法G:S→xSx|y所识别的语言是。
a. xyxb. (xyx)*c. x n yx n(n≥0)d. x*yx*2、文法G描述的语言L(G)是指。
a. L(G)={α|S+⇒α , α∈V T*}b. L(G)={α|S*⇒α, α∈V T*}c. L(G)={α|S*⇒α,α∈(V T∪V N*)}d. L(G)={α|S+⇒α, α∈(V T∪V N*)}3、有限状态自动机能识别。
a. 上下文无关文法b. 上下文有关文法c.正规文法d. 短语文法4、设G为算符优先文法,G的任意终结符对a、b有以下关系成立。