安徽大学编译原理期中老师给的试卷

合集下载

《编译原理》考试试题及答案

《编译原理》考试试题及答案

《编译原理》考试试题及答案(附录)一、判断题: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.扫描器的任务是从()中识别出一个个()。

安徽大学编译原理B-补考

安徽大学编译原理B-补考

安徽大学2012 -2013学年第一学期《编译原理》(B卷)年级院系专业姓名学号座位号(闭卷时间120分钟)一.简答(20分)Array 1.说明编译方式与解释方式的区别2.什么叫文法?乔姆斯基将文法分为哪四类?3.简述DFA M 与NFA M的异同点4.解释语法分析中自底向上分析的一般过程5.解释名字和标志符的异同点文法G[S]:S S(S)S| ,请判断G[S]是否是二义文法,说明理由三、(15分)有语言L={w|w ∈ (0,1)+,并且 w 中至少有两个 1 ,又在任何两个1之间有偶数个 0 },试构造接受该语言的确定有限状态自动机(10分)现有文法GE → E+T | E-T | TT → T*F | T/F | F F → (E) | i其中E 是文法的开始符号,求出句型(F +i )-T*(E-T)的短语,简单短语,句柄和素短语 五、(10分)考虑文法 G[S]:S → (T) | a+S | a T → T,S | S消除文法的左递归及提取公共左因子。

请给对文法G[S]进行改写成LL(1)文法,并给出改写后文法的预测分析表,要求计算出改写后文法各非终极符的FIRST和FOLLOW集合。

S → S*aA | aA| *aAA→ +aA | +a七、(10分)(1)if a<b OR c<d AND e>f then S1 else S2(2) while (A>B) do if (C<D) then X = Y+Z(3)令A是一个10×20的数组,写出赋值语句A[ I+2, J+1 ] =M+N的四元式序列八、(20分)已知文法G为:(0)S′→ S(1)S → aAd(2)S → bAc(3)S → aec(4)S → bed(5) A → e试构造它的LR(1)项目集、可归前缀图和LR(1)分析表。

编译原理试题库.docx

编译原理试题库.docx

精品文档一填空题1.编译程序首先要识别出源程序中每个,然后再分析每个并翻译其意义。

单词,句子2.编译器常用的语法分析方法有和两种。

自底向上,自顶向下2.通常把编译过程分为分析与综合两大阶段。

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

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

静态存储分配,动态存储5.对编译程序而言,输入数据是,输出结果是。

源程序,目标程序6.文法 G 包括四个组成部分:一组终结符号,一组非终结符号,一组,以及一个开始符号。

产生式7.文法按产生式的形式分为四种类型,它们是: 0 型文法,又称短语文法; 1 型文法,又称上下文有关文法; 2 型文法,又称;3 型文法,又称。

上下文无关文法,正规文法8.最右推导称为,由规范推导产生的句型称为规范句型。

规范推导9.设 G 是一个文法, S 是它的开始符号,如果 S=>* α,则称α是一个。

仅由终结符号组成的句型是一个。

句型,句子10 对于一个文法G 而言,如果 L(G) 中存在某个句子对应两棵不同,那么该文法就称为是二义的。

语法树11.通常程序设计语言的单词符号分为五种:基本字、、常数、算符、界限符。

标识符12.在自底向上分析法中,LR 分析法把“可归约串”定义为。

句柄13.编译中常用的中间代码形式有逆波兰式、三元式、和四元式等。

树代码14.对中间代码优化按涉及的范围分为,和全局优化。

局部优化,循环优化15.局部优化主要包括、利用公共子表达式和删除无用赋值等内容。

合并已知量16.为了构造不带回溯的递归下降分析程序,我们通常要消除和提取左递归,左公共因子17.计算机执行用高级语言编写的程序主要有两种途径:和。

解释执行,编译执行18.扫描器是词法分析,它接收输入的,对源程序进行词法分析并识别出一个个,供语法分析器使用。

源程序,单词符号19.自下而上分析法采用,,和等四种操作。

编译原理试题及答案

编译原理试题及答案

编译原理试题及答案
编译原理是计算机科学中的一门重要课程,它涉及到程序设计语言的语法、语义分析以及编译器的设计与实现等内容。

下面我们将为大家提供一些编译原理的试题及答案,希望能够帮助大家更好地理解和掌握这门课程的知识。

1. 什么是编译原理?
编译原理是研究编译器的设计与实现的一门学科,它主要包括词法分析、语法分析、语义分析、中间代码生成、代码优化和代码生成等内容。

2. 什么是词法分析?
词法分析是编译原理中的一个重要内容,它主要负责将源程序转换成一个个的单词符号,也就是词法单元。

3. 什么是语法分析?
语法分析是编译原理中的另一个重要内容,它主要负责将词法单元序列转换成抽象语法树,以便进行后续的语义分析和中间代码生成。

4. 什么是语义分析?
语义分析是编译原理中的一个关键环节,它主要负责对源程序进行语义检查,以确保程序的正确性和合法性。

5. 什么是中间代码生成?
中间代码生成是编译原理中的一个重要环节,它主要负责将源程序转换成一种中间形式的代码,以便进行后续的代码优化和代码生成。

6. 什么是代码优化?
代码优化是编译原理中的一个关键环节,它主要负责对中间代码进行优化,以提高程序的执行效率和减少资源消耗。

7. 什么是代码生成?
代码生成是编译原理中的最后一个环节,它主要负责将优化后的中间代码转换成目标机器代码,以便计算机能够执行。

以上就是关于编译原理的一些试题及答案,希望能够帮助大家更好地理解和掌握这门课程的知识。

如果大家对编译原理还有其他疑问,可以随时向我们提问,我们将竭诚为大家解答。

2012-09安徽大学计科编译原理试题B

2012-09安徽大学计科编译原理试题B

安徽大学20 11 —20 12 学年第二学期《编译原理》考试试卷(B卷)(闭卷时间120分钟)院/系年级专业姓名学号1. 下面关于编译程序的说法不正确的是。

A. 代码优化是其不可缺少的一部分B. 中间代码生成是其不可缺少的C. 含有优化部分的编译程序的效率高D. 编译程序得到的目标程序可执行2.在编译过程中,语法分析器的任务是。

A.分析单词是怎样构成的B.分析单词串是如何构成语句和说明的C.分析语句和说明是如何构成的D.分析程序的结构3. 已知文法L={a n b m| m≥n≥0},则下列文法可以产生L的是。

A.G[S] :S→a S b | S b|εB.G[S] :S→a S b | B B→Bb|εC.G[S] :S→AB A→a A b|εB→Bb|εD.G[S] :S→AB A→a A b|εB→bB|ε4. 描述单词的工具有。

A.正规文法B.正规式C.有限状态自动机D.下推自动机5.下面关于LL(1)文法的说法正确的是。

A.LL(1)文法都是无二义的B. LL(1)文法是LR(1)文法C.LR(1)文法是LL(1)文法D. 无左递归的文法是LL(1)文法6.在算符优先分析方法中归约的是。

A.句柄B. 直接短语C. 最左素短语D.素短语7.在语义分析过程中要完成任务是。

A.静态语义检查B.执行真正的翻译C.检查语义结构D.完成语义计算8.赋值语句 A*(B-C*(C/D))的逆波兰式是。

A.ABC-CD/**B.ABCCD/*-*C.ABC-*CD/*D.ABC-*CB/*9.下列关于存储管理的叙述中,正确的是。

A.栈式存储管理允许过程的递归调用B.栈式存储管理允许使用动态数据C.堆式存储管理允许过程的递归调用D.堆式存储管理允许使用动态数据10.循环优化主要采用的三项优化措施是 。

A.合并已知量 B.代码外提 C.强度削弱 D.删除归纳变量 二、(20分)设NFA M=(Q ,Σ,δ,S,F )如下图所示:,b1.求出与之等价的DFA M ´;(8分)2. 求最小的DFA M (8分)3.求出DFA M ´接受的正规式;(2分)4.写出该自动机接受的语言。

安大编译原理期末习题集(有原题)

安大编译原理期末习题集(有原题)
105 (j,_,_,108)
106 (+, C, 1, C)
107 (j,_,_,112)
108 (j≤,A,D,110)
109 (j,_,_,112)
110 (+, A, 2, A)
111 (j,_,_,108)
112 (j,_,_,100)
113
5.已知文法G[S]为S → aSb|Sb|b,试证明文法G[S]为二义文法。
《编译原理》期末试题(一)
一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)
1.编译程序是对高级语言程序的解释执行。(×)
2.一个有限状态自动机中,有且仅有一个唯一的终态。(×)
3.一个算符优先文法可能不存在算符优先函数与之对应。(√)
4.语法分析时必须先消除文法中的左递归。(×)
17.一张转换图只包含有限个状态,其中有一个被认为是(初)态;而且实际上至少要有一个(终 )态。
19.语法分析是依据语言的(语法 )规则进行。中间代码产生是依据语言的(语义)规则进行的。
21.一个文法G,若它的预测分析表M不含多重定义,则该文法是(LL(1) 文法)文法。
22.对于数据空间的存贮分配, FORTRAN采用( 静态策略, PASCAL采用( 动态)策略。
C.( )编译方法D.( )以上三项都是
6.四元式之间的联系是通过_____实现的。
A.( )指示器B.( )临时变量
C.( )符号表D.( )程序变量
7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为_____。
A. ( ) ┐AB∨∧CD∨B.( ) A┐B∨CD∨∧
C.( ) AB∨┐CD∨∧D.( ) A┐B∨∧CD∨
8.优化可生成_____的目标代码。

编译原理试题及答案

编译原理试题及答案

编译原理试题及答案
试题:
1. 解释编译原理的定义,同时给出编译器的作用。

2. 简要描述编译过程中的四个基本步骤。

3. 解释词法分析器的功能和作用。

4. 解释语法分析器的功能和作用。

答案:
1. 编译原理是研究如何将高级语言程序转化为等价机器语言程序的一门学科。

编译器是将高级语言文本转换成等价的机器语言的软件工具。

它负责将源代码转化为目标代码,以便计算机能够理解和执行。

2. (1) 词法分析:将源代码分解成一系列单词或标记。

(2) 语法分析:根据语法规则组织单词或标记形成语法树。

(3) 语义分析:分析语法树以检测语义错误。

(4) 代码生成:根据语法树生成目标代码。

3. 词法分析器的功能是将源代码分解成一系列单词或标记。

它将源代码读取为字符流,然后将这些字符组成单词,同时可以去除空格、注释等不具有实际意义的内容。

词法分析器的作用是为语法分析器提供正确的单词序列,为后续的语义分析和代
码生成步骤建立基础。

4. 语法分析器的功能是根据语法规则组织单词或标记形成语法树。

它通过构建语法树来分析源代码的语法结构,同时可以检测语法错误。

语法分析器的作用是为后续的语义分析和代码生成步骤提供一个结构化的表示形式,便于后续的处理和转换。

完整版编译原理试题

完整版编译原理试题

编译原理考试题及答案汇总一、选择1.将编译程序分成若干个“遍”是为了 _B__。

A . 提高程序的执行效率 B. 使程序的结构更加清晰C. 利用有限的机器内存并提高机器的执行效率D. 利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指 __C__。

A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。

C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等3.中间代码生成时所依据的是 _C_。

A.语法规则 B •词法规则 C •语义规则 D •等价变换规则 4.后缀式ab+cd+/可用表达式__B_来表示。

A. a+b/c+d B . (a+b)/(c+d) C a+b/(c+d) D a+b+c/d6. 一个编译程序中,不仅包含词法分析, _A _______ ,中间代码生成,代码优化,生成等五个部分。

A .( ) 语法分析B .( ) 文法分析C .( ) 语言分析D .( ) 解释分析 7. 词法分析器用于识别 __C___。

A .( ) 字符串B .( ) 语句C .( ) 单词D .( ) 标识符 8. 语法分析器则可以发现源程序中的 ___D__。

A .( ) 语义错误B .( ) 语法和语义错误C .( ) 错误并校正D .( ) 语法错误 9. 下面关于解释程序的描述正确的是 __B___。

(1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的A .( ) (1)(2)B .( ) (1)C .( ) (1)(2)(3)D .( ) (2)(3) 10. 解释程序处理语言时 , 大多数采用的是 __B___方法。

A .( ) 源程序命令被逐个直接解释执行B .( ) 先将源程序转化为中间代码 , 再解释执行C .( ) 先将源程序解释转化为目标程序 , 再执行D .( ) 以上方法都可以11. 编译过程中 , 语法分析器的任务就是 (1) 分析单词是怎样构成的 (2) (3) 分析语句和说明是如何构成程序的 A .( ) (2)(3) B .( ) (2)(3)(4)C .( ) (1)(2)(3) D .( ) (1)(2)(3)(4) 12. 编译程序是一种 ___C__。

编译原理期中测试题

编译原理期中测试题

系别___________________ 专业_____________________年级_____________________姓名_________________学号┈┈┈┈┈┈┈┈┈┈┈┈┈┈密┈┈┈┈┈┈┈┈┈┈┈┈┈┈封┈┈┈┈┈┈┈┈┈┈┈┈┈线┈┈┈┈┈┈┈┈┈┈┈┈┈┈计算机学院编译原理课期中测试题1.文法G所描述的语言是的集合。

A.文法G的字母表V中所有符号组成的符号串B.文法G的字母表V的闭包V*中的所有符号串C.由文法的开始符号推出的所有符号串D.由文法的开始符号推出的所有终结符串2.有文法G[I]:I→I1|I0|Ia|Ib|Ic|a|b|c ,下列符号串中是该文法的句子的有①ab0 ②a0c01 ③aaa ④bc10 可选项有:。

A.②③④B.①C.③D.①②③④3.词法分析所依据的是。

A.语义规则B.构词规则C.语法规则D.等价变换规则4.如果L(M) = L(M’),则M与M’。

A.等价B.M与M’都是二义的C.M与M’都是无二义的D.它们的状态数相等5.下面状态转换图接受的字集为。

1A.以0开头的二进制数组成的集合B.以0结尾的二进制数组成的集合C. 含奇数个0的二进制数组成的集合D.含偶数个0的二进制数组成的集合6.文法G[E]:E→T|E+T T→F|T*F F→a|(E)该文法句型E+F*(E+T)的直接短语是下列符号串的。

①(E+T) ②E+T ③F ④F*(E+T)可选项有:A.①③B.②③C.③④D.③7. 有限状态自动机能识别。

A.上下文无关文法B.上下文有关文法C.正规文法D.短语文法8. 如果文法G是无二义的,则它的任何句子 。

A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但他们对应的语法树相同9.产生正规语言的文法为文法A . 0型B .1型 C.2型 D.3型10、素短语是指_______的短语。

《编译原理》试卷参考答案(2020A)

《编译原理》试卷参考答案(2020A)

2019―2020第二学期《编译原理》期末考试试卷(A)使用专业、班级学号姓名题数一二三四五六七总分得分一、选择填空〖每空1分,共计20分〗1.编译程序将源程序加工成目标程序是 C 之间的转换。

A.词法B.语法C.语义D.规则2.开发一个编译程序应掌握 D 。

A.源语言B.目标语言C.编译技术D.以上三项都是3.词法分析器的输出结果是 B 。

A.单词自身B.单词的机内符C.单词的词义信息D.单词的词法信息4.称有限自动机A1和A2等价是指 D 。

A.A1和A2都是定义在一个字母表Σ上的有限自动机B.A1和A2状态数和有向边数相等C.A1和A2状态数或有向边数相等D.A1和A2所能识别的字符串集合相同5.同正则表达式(a | b)+等价的正则表达式是 B 。

A.(a | b) * B.(a | b) (a | b) *C.(a b)* (a b) D.(a | b)| (a | b)*6.前后文无关文法G:S→[ S ] | [ ]所产生的语言是 D 。

A.[ m ] n (m,n>0)B.[ m ] n (m,n>1)C.[ m ] m(m≥0)D.[ n ] n(n≥1)7.由文法的开始符出发通过若干步(包括0步)推导产生的文法符号序列是 B 。

A.语言B.句型C.句子D.句柄8.最左简单子树的叶结点,自左至右排列组成句型的 C 。

A.短语B.简单短语C.句柄D.素短语9.简单优先分析法每次都是对 D 进行归约。

A.短语B.简单短语C.素短语D.句柄考试形式开卷()、闭卷(√),在选项上打(√)开课教研室命题教师试卷专用纸使用学期总张数教研室主任审核签字江 南 大 学 考二、文法和语言类型题〖1小题10分,2小题5分,共计15分〗1.设有文法G[S]:E → E+T | E-T | TT → T*F | T/F | F F → x | y | z | (E)(1) 给出对于句子x+y*x-z 的最右推导过程E => E-T=> E -F=> E -z=> E+T -z=> E+ T*F -z =>> E+T*x -z=> E+F*x -z=> E+y*x -z => T+y*x -z=> F+y*x -z=> x+y*x -z(2) 试构造句型(E+T)-(T+F)的语法树(3) 基于上述语法树给出该句型的短语、简单短语和句柄。

安大编译原理期末习题集(有原题)

安大编译原理期末习题集(有原题)
11.一个名字的属性包括(类型)和(作用域)。
12.常用的参数传递方式有(传地址),(传值),(传名)
13.根据优化所涉及的程序范围,可将优化分成为(局部优化),(循环优化),(全局优化)三个级别。
14.语法分析的方法大致可分为两类,一类是(自上而下)分析法,另一类是(自下而上)分析法。
15.预测分析程序是使用一张(分析表)和一个(符号栈)进行联合控制的。
解:w a b + c d e 10 - / + 8 + * +
4.按照三种基本控制结构文法将下面的语句翻译成四元式序列:
while (A<C∧B<D)
{
if (A ≥ 1) C=C+1;
else while (A ≤ D)
A=A+2;
}。
解:该语句的四元式序列如下(其中E1、E2和E3分别对应A<C∧B<D、A≥1和A≤D,并且关系运算符优先级高):
2.考虑文法G[S]:
S → (T) | a+S | a
T → T,S | S
消除文法的左递归及提取公共左因子。
解:消除文法G[S]的左递归:
S→(T) | a+S | a
T→ST′
T′→,ST′| ε
提取公共左因子:
S→(T) | aS′
S′→+S | ε
T→ST′
T′→,ST′| ε
3.试为表达式w+(a+b)*(c+d/(e-10)+8)写出相应的逆波兰表示。
已知文法
A->aAd|aAb| ε
判断该文法是否是SLR(1)文法,若是构造相应分析表,并对输入串ab#给出分析过程。

《编译原理》期中及期末习题

《编译原理》期中及期末习题

《编译原理》期中及期末习题第一章高级语言与编译程序概述典型例题:单项选择题1.1.1.将编译程序分成若干个“遍”是为了___。

a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率1.1.2.构造编译程序应掌握____。

(陕西省2000年自考题)a.源程序b.目标语言c.编译方法d.以上三项都是1.1.3.变量应当_。

a.持有左值b.持有右值c.既持有左值又持有右值d.既不持有左值也不持有右值1.1.4.编译程序绝大多数时间花在____上。

(陕西省1998年自考题)a.出错处理b.词法分析c.目标代码生成d.管理表格1.1.5.____不可能是目标代码。

( 陕西省1997年自考题)a.汇编指令代码b.可重定位指令代码c.绝对指令代码d.中间代码1.1.6.数组A[1…20,1…10]的首地址偏移量为0,按列存储,每个元素占一个字节,存储器按字节编址,则A[i,j]的偏移地址为____。

a.(i-1)X10+(j-1)b.(i-1)X20+(j-1)c. (i-1)+(j-1)X10d.(i-1)+(j-1)X201.1.7.使用____可以定义一个程序的意义。

a.语义规则b.词法规则c.产生规则d.左结合规则1.1.8.表达式X:=5中,变量x____。

a.只有左值b.只有右值c.既有左值又有右值d.没有左值也没有右值1.1.9.词法分析器的输入是__。

a.单词符号b.源程序c.语法单位d.目标程序1.1.10.中间代码生成时所遵循的是_。

a.语法规则b.词法规则c.语义规则d.等价变换规则1.1.11.编译程序是对__。

a.汇编程序的翻译b.高级语言程序的解释执行c.机器语言的执行d.高级语言的翻译1.1.12.词法分析应遵循_。

(陕西省2000年自考题)a.语义规则b.语法规则c.构词规则d.等价变换规则多项选择题:1.2.1 编译程序各阶段的工作都涉及到___。

编译原理试题及答案

编译原理试题及答案

编译原理试题及答案编译原理是计算机科学中的重要基础课程,涉及到编程语言的设计、编译器的构建等内容。

为了帮助大家更好地掌握编译原理的知识,我整理了一些编译原理试题及答案,希望能够对大家的学习有所帮助。

1. 什么是编译原理?简要说明其作用和意义。

编译原理是研究如何将高级语言程序翻译成目标代码的一门学科。

它的作用和意义在于帮助人们理解程序设计语言的语法和语义,掌握程序设计语言的翻译方法和技术,从而更好地进行程序设计和编程工作。

2. 请简要描述编译器的基本工作原理。

编译器的基本工作原理包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等步骤。

其中,词法分析将源程序转换成单词流,语法分析将单词流转换成语法树,语义分析对语法树进行语义检查,中间代码生成将语法树转换成中间代码,代码优化对中间代码进行优化,目标代码生成将优化后的中间代码转换成目标代码。

3. 什么是文法?简要说明文法的分类及其特点。

文法是用于描述编程语言语法结构的形式化工具。

文法可以分为上下文无关文法和上下文相关文法两种,其中上下文无关文法的特点是产生式左部只能是一个非终结符,上下文相关文法的特点是产生式左部可以是一个非终结符和一个终结符的串。

4. 请简要说明语法分析的两种基本方法及其区别。

语法分析的两种基本方法是自顶向下分析和自底向上分析。

自顶向下分析是从文法的开始符号出发,采用推导或归纳的方法,逐步构造出推导树或语法树;自底向上分析是从输入串出发,采用规约或移进的方法,逐步构造出推导树或语法树。

5. 请简要说明语义分析的主要任务及其实现方法。

语义分析的主要任务是对源程序进行语义检查,确保程序具有正确的含义。

语义分析的实现方法包括类型检查、作用域检查、中间代码生成等步骤,其中类型检查用于检查表达式的类型是否匹配,作用域检查用于检查标识符的作用域是否正确,中间代码生成用于将语法树转换成中间代码表示形式。

以上就是我整理的编译原理试题及答案,希望对大家的学习有所帮助。

编译原理期中考试答案

编译原理期中考试答案

三、完成下列各题(共30分)1、(5分)2、(1)E⇒E+T⇒ E+T+T ⇒ E+T+F⇒ E+T+i⇒⇒ E+T*F+i⇒ T+T*F+i(3分)语法树(2分)(2)短语:T*F,T,i,T+T*F,T+T*F+i (1分)简单短语:T*F,T,i (1分)句柄:T (1分)活前缀:T (1分)可归前缀:T (1分)3、如果对于某文法的同一个句子存在两个不同的语法树则称该句子是二义性的,包含二义性句子的文法称为二义性文法。

(4分)对于句子i+i*i有两棵不同的语法树。

画出两棵不同的语法树(6分)四、(共40分)1、R=1(1|0)*|0正则式转化为NFA(5分)NFA转化为DFA,并换名(5分)DFA最小化(5分)K1={B,C,D} K2={A}K11={ C,D} K12={B}C,D为等价状态,合并等价状态为0,11 0,10,12、S→aBc|bABA→aAb|bB→b|ε(1)FOLLOW(S)={#}FOLLOW(A)={b,#}FOLLOW(B)= {c,#} (3分)(2)SELECT(S→aBc)={a}SELECT(S→Bab)={b}SELECT(S→aBc)∩SELECT(S→Bab)=ФSELECT(A→aAb)={a}SELECT(A→b)={b}SELECT(A→aAb)∩SELECT(A→b)={b}=ФSELECT(B→b)={b}SELECT(ε)={c,#}SELECT(B→b)∩SELECT(ε)=Ф所以该文法是LL(1)文法。

(7分)(3)(5分)3、对规则进行编号(0) S→A(1)A→Ab(2) A→bBa(3)B→aAc(4) B→a(5) B→aAb(1)为这个文法构造LR(0)项目集规范族。

(2)该文法是LR(0)文法吗?请说明理由。

(3)构造它的LR(0)分析表。

(15分)(2)状态C5存在“移进-归约”冲突,状态C9存在“归约-归约”冲突,所以该文法不是LR(0)文法。

编译原理试卷及答案

编译原理试卷及答案

东 北 大 学秦 皇 岛 分 校课程名称: 编译原理 试卷: (B )答案 考试形式: 闭卷授课专业: 计算机科学与技术 考试日期: 年 月 日 试卷:共 2 页题号 一 二 三 四 总分得分 阅卷人一、填空题(每空2分,共30分)1、编译程序的整个过程可以从逻辑上划分为词法分析、 语法分析 、语义分析、中间代码生成、 代码优化 和目标代码生成等几个阶段,另外还有两个重要的工 作是 理 和出错处理。

表格管2、规范规约中的可归约串是 句柄 ,算符优先分析中的可归约串是 最左素短语 。

3、语法分析方法主要可分为 自顶向下 和 自底向上 两大类。

4、LR (0)文法的项目集中不会出现 移进-归约 冲突和 归约-归约 冲突。

5、数据空间的动态存储分配方式可分为 栈式 和 堆式 两种。

6、编译程序是指能将 源语言 程序翻译成 目标语言 程序的程序。

7、确定有穷自动机DFA 是 NFA 的一个特例。

8、表达式 (a+b)*c 的逆波兰表示为 ab+c* 。

二、选择题(每题2分,共20分)1、LR 语法分析栈中存放的状态是识别 B 的DFA 状态。

A 、前缀B 、可归前缀C 、项目D 、句柄 2、 D 不可能是目标代码。

A 、汇编指令代码B 、可重定位指令代码C 、绝对机器指令代码D 、中间代码 3、一个控制流程图就是具有 C 的有向图A 、唯一入口结点B 、唯一出口结点C 、唯一首结点D 、唯一尾结点 4、设有文法G[S]:S →b|bBB →bS ,则该文法所描述的语言是C 。

A 、L (G )={b i |i ≥0}B 、L (G )={b 2i |i ≥0}C 、L (G )={b 2i+1|i ≥0}D 、L (G )={b 2i+1|i ≥1}5、把汇编语言程序翻译成机器可执行的目标程序的工作是由 B 完成的。

A 、编译器B 、汇编器C 、解释器D 、预处理器 6、在目标代码生成阶段,符号表用于 D 。

《编译原理》答案(A卷)

《编译原理》答案(A卷)

《编译原理》2011期末试题A卷答案一、单选题(每题2分,共20分)1-5 A C D D C 6-10 C D C B B二、填空题(每题2分,共10分)1、[0-9]+2、综合继承3、开始4、堆式栈式5、9 12三、判断题(每题1分,共10分)1-5 x x x√√6-10 x √√x x四、简答题(5分/题×5题=25分)1、答:指程序中顺序执行的一个语句序列,其中只有一个入口和一个出口。

(1分)基本块的入口语句需满足如下条件之一:(2分)1) 程序第一个语句;2) 能由条件转移语句或无条件转移语句转移到的语句;3) 紧跟在条件转移语句后面的语句。

基本块的出口语句为下列语句之一:(2分)1) 下一个基本块入口语句的前一个语句;2) 一个条件转移或无条件转移语句;3) 一个停语句。

2:3、答:识别标识符的NFA为:4、答:文法G[S]为:S → A BA → a a A b b | a bB → c c B |5、答:对句子:if true then if true then id=true else id=true (1分),该文法有两种不同的最左推导(1分):Stmt => if Exp then Stmt=> if true then Stmt=> if true then if Exp then Stmt else Stmt=> if true then if true then Stmt else Stmt=> if true then if true then id=Exp else Stmt=> if true then if true then id=true else Stmt=> if true then if true then id=true else id=Exp=> if true then if true then id=true else id=true (1分)Stmt => if Exp then Stmt else Stmt=> if true then Stmt else Stmt=> if true then if Exp then Stmt else Stmt=> if true then if true then Stmt else Stmt=> if true then if true then id=Exp else Stmt=> if true then if true then id=true else Stmt=> if true then if true then id=true else id=Exp=> if true then if true then id=true else id=true (1分)语言为由所有以一条赋值语句为基础语句的嵌套if语句组成的语句的集合,其中的if语句可以有可选的else子语句;表达式为true或false。

2023大学_编译原理试题及参考答案

2023大学_编译原理试题及参考答案

2023编译原理试题及参考答案编译原理试题一、是非题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个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:SxSx|y所识别的语言是_____。

A.( ) xyxB.( ) (xyx)__C.( ) xnyxn(n0)D.( ) x__yx__4.如果文法G是无二义的,则它的任何句子_____。

A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。

A.( )源程序B.( ) 目标语言C.( ) 编译方法D.( ) 以上三项都是6.四元式之间的联系是通过_____实现的。

A.( ) 指示器B.( ) 临时变量C.( ) 符号表D.( ) 程序变量7.表达式(┐AB)(CD)的逆波兰表示为_____。

A. ( ) ┐ABCDB.( ) A┐BCDC.( ) AB┐CDD.( ) A┐BCD8. 优化可生成_____的目标代码。

A.( ) 运行时间较短B.( ) 占用存储空间较小C.( ) 运行时间短但占用内存空间大D.( ) 运行时间短且占用存储空间小9.下列______优化方法不是针对循环优化进行的。

A. ( ) 强度削弱B.( ) 删除归纳变量C.( ) 删除多余运算D.( ) 代码外提10.编译程序使用_____区别标识符的作用域。

编译原理试题A及答案

编译原理试题A及答案

编译原理试题A一、单项选择题(每题1分,共20分)1、哪个不是编译系统的组成部分( C )A.词法分析器 B. 代码生成器C.设备管理程序 D. 语法分析器2. 设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是什么( B )A.词法分析 B. 语法分析C.语义分析 D. 代码生成3. 下面不能用于对文法进行描述的是( A )A.源语言 B. EBNF C.BNF D. 语法图4. 设有文法G[S]: S→S1|S0|Sa|Sc|a|b|c,下列符号串中不是该文法的句子的是(A )A. ab0 B. a0c01 C. aaa D. bc105. 文法G[S]:S→aAA→bBB→a|aS ,则L(G)为(C )A.{(ab)n a|n≥1} B. {a (ba)n|n≥1}C.{(aba)n|n≥1} D. {(aba)n|n≥0}6. 哪个不是DFA的构成成分(B )A.有穷字母表 B. 初始状态集合C.终止状态集合 D. 有限状态集合7.词法分析器的输入是(B )A.单词符号串 B.源程序 C.语法单位 D.目标程序8.在词法分析阶段不能识别的是(C )A.标识符 B. 运算符 C.四元式 D. 常数9.设有一段C语言程序while(i&&++j){c=2.19;j+=k;i++;} ,经过词法分析后可以识别的单词个数是( B )A.19 B.20 C.21 D.2310.自上而下语法分析的主要动作是(B )A.移进 B. 推导 C.规约 D. 匹配11.下面不属于LL(1)分析器的组成部分是(D )A.LL(1)总控程序 B. LL(1)分析表C.分析栈 D.源程序串12.设有文法G[S]为S→AB|bC, A→ε|b,B→ε|aD,C→AD|b,D→aS|c则FOLLOW(A)为(A )A.{a,c,#} B.{c,#} C.{a,#} D.{#}13.设有文法G[S]:S→Ap|Bq,A→a|cA,B→b|dB ,则FIRST(Ap)为( C )A.{p,q} B. {b,d} C.{a,c} D. 其他14.自下而上语法分析的主要分析动作是(D )A.推导 B. 规约 C.匹配 D. 移进-规约15.算法优先分析中,可规约串是( C )A.句柄 B.活前缀 C.最左素短语 D.素短语16. 设有文法G={{S},{a},{S→SaS|ε},S},该文法是(B )A.LL(1)文法 B.二义性文法C.SLR(1)文法 D.算法优先文法17、中间代码生成时所以据的是(C )A.语法规则 B.词法规则 C.语义规则D.等价变换规则18、给定文法G: E→E+T|T,T→T*F|F,F→i|(E)则L(G)中的一个句子i+i+(i*i)*i的逆波兰表示为( C)A.iii*i++ B.ii+iii**+ C.ii+ii*i*+ D.其他19.在编译程序中与生成中间代码的目的无关的是(B)A.便于目标代码优化 B.便于存储空间的组织C.便于目标代码的移植 D.便于编译程序的移植20.中间代码是介于源语言程序和什么之间的一种代码 (D )A .源代码 B. 机器语言 C. 汇编语言 D. 目标代码二.简答(每题3分,共12分)1. 什么是编译程序?编译程序是将源语言程序翻译为目标语言程序的程序。

编译原理期中试卷

编译原理期中试卷

编译原理期中试卷
第 1 页共计算
1、文法二义性证明,证明下面文法有二义性
P->PaP | PbP | cP | Pe | f
2、给出文法的句子的最右推导(
S->aB | bA
A->aS | bAA | a
B->bS | aBB | b
给出句子aaabbabbba 最右推导
3、为如下正规式构建NFA ,并确定化和最小化
(a|b)*a(a|b)
4、将文法G[S]改写为等价的G′[S],使G′[S]不含左递归和左公共因子。

G[S]:S→bSAe | bA
A→Ab | d
5、构建下面各文法LL (1)分析表
S → AB
A → a
B | bS | c
B → AS | d
⑴ 请给出每一个产生式右部的 First 集;
⑵ 请给出每一个非终结符号的 Follow 集;
⑶ 请构造该文法的 LL(1) 分析表;
⑷ 什么是 LL(1) 文法?该文法是 LL(1) 文法吗?为什么?
6、找出句型中短语,直接短语,句柄
文法G[S]为:
S→SdT | T
T→T<="" p="" |="">
G→(S) | a
试给出句型(SdG)
7、构建下面各文法优先关系表,优先函数等(
|*)B B |B A A A
|S iA S A →+→→
构造各非终结符的FIRSTVT 和LASTVT 集合;构造优先关系表和优先函数。

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