广工编译原理(精选题集+必考大题

合集下载

广工编译原理真题

广工编译原理真题

内容加上

的DISPLAY表的
三 有穷自动机M接受字母表={0,1}上所有满足下述条件的串:每个1 都有0直接跟在右边。构造一个最小的DFA M及和M等价的正规式。
四 证明正规式(ab)*a 与正规式a(ba)*等价 (用构造他们的最小的 DFA方法)。
五 写一个文法,使其语言是:
L = { 1n0m1m0n | m,n≥0 }
试构造它的LR(1)项目集、可归前缀图和LR(1)分析表。 八 已知源程序如下:
prod:=0; i:=1; while i≤20 do
begin prod:=prod+a[i]*b[i]; i:=i+1
end; 试按语法制导翻译法将源程序翻译成四元式序列(设A是数组a的起始地 址,B是数组b的起始地址;机器按字节编址,每个数组元素占四个字 节)。
编译原理
一 选择题
【 】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的不同语法分析树的
总数为______。
六 对文法G[S] S → aSb | P P → bPc | bQc Q → Qa | a (1) 它是否是算符优先文法?请构造算符优先关系表
(2) 文法G[S]消除左递归、提取左公因子后是否是 LL(1)文法?请证实。
七 已知文法G为: (0) S′→ S (1) S → aAd (2) S → bAc (3) S → aec (4) S → bed (5) A → e

编译原理期末试题(8套含答案+大题集)

编译原理期末试题(8套含答案+大题集)

《编译原理》期末试题(一)一、是非题(请在括号内,正确的划√,错误的划×)(每个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.构造编译程序应掌握______。

完整word版,编译原理期末试题(8套含答案+大题集),推荐文档

完整word版,编译原理期末试题(8套含答案+大题集),推荐文档

《编译原理》期末试题(一)一、是非题(请在括号内,正确的划√,错误的划×)(每个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.一个正规语言只能对应( B )A 一个正规文法B 一个最小有限状态自动机2.文法G[A] :A→εA→aB B→Ab B→a是( A )A 正规文法B 二型文法3.下面说法正确的是( A ) A一个SLR(1)文法一定也是LALR (1)文法B一个LR (1)文法一定也是LALR (1)文法4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL (1)文法的( A )A 必要条件B 充分必要条件5.下面说法正确的是( B )A 一个正规式只能对应一个确定的有限状态自动机B 一个正规语言可能对应多个正规文法6.算符优先分析与规范归约相比的优点是( A )A 归约速度快B 对文法限制少7.一个LR (1)文法合并同心集后若不是LALR (1)文法( B )A 则可能存在移进/归约冲突B 则可能存在归约/归约冲突C 则可能存在移进/归约冲突和归约/ 归约冲突8.下面说法正确的是( A )A Lex 是一个词法分析器的生成器B Yacc 是一个语法分析器9.下面说法正确的是( A )A一个正规文法也一定是二型文法B一个二型文法也一定能有一个等价的正规文法10.编译原理是对(C) 。

A 、机器语言的执行B、汇编语言的翻译C、高级语言的翻译D、高级语言程序的解释执行11.(A) 是一种典型的解释型语言。

A .BASICB .CC.FORTRAN D.PASCAL12.把汇编语言程序翻译成机器可执行的目标程序的工作是由(B) 完成的。

A. 编译器B. 汇编器C. 解释器D. 预处理器13.用高级语言编写的程序经编译后产生的程序叫(B) A .源程序B .目标程序C.连接程序 D .解释程序14.(C) 不是编译程序的组成部分。

A. 词法分析程序B. 代码生成程序C.设备管理程序D. 语法分析程序15.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优目标代码生成等六个部分,还应包括(C)A .模拟执行器B .解释器C.表格处理和出错处理D .符号执行器16.编译程序绝大多数时间花在(D) A .出错处理B.词法分析C.目标代码生成D.表格管理17.源程序是句子的集A. 线性表(B) 可以较好地反映句子的结构。

《编译原理》复习题(看完必过)

《编译原理》复习题(看完必过)

《编译原理》复习题(看完必过)一、单项选择题1.将编译程序分成若干个“遍”是为了( B )A.提高程序的执行效率B. 使程序的结构更加清晰C.利用有限的机器内存并提高机器的执行效率D.利用有限的机器内存但降低了机器的执行效率2.不可能是目标代码的是( D )A.汇编指令代码 B.可重定位指令代码C.绝对指令代码 D.中间代码3.词法分析器的输入是( B )A.单词符号串 B.源程序C.语法单位 D.目标程序4.中间代码生成时所遵循的是( C )A.语法规则 B.词法规则C.语义规则 D.等价变换规则5.编译程序是对( D )A.汇编程序的翻译 B.高级语言程序的解释执行C.机器语言的执行 D.高级语言的翻译6.词法分析应遵循( C )A.语义规则 B.语法规则C.构词规则 D.等价变换规则7.词法分析器的输出结果是( C )A.单词的种别编码 B.单词在符号表中的位置C.单词的种别编码和属性值 D.单词属性值8.正规式M1和M2等价是指( C )A.M1和M2的状态数相等 B.M1和M2的有向弧条数相等C.M1和M2所识别的语言集相等 D.M1和M2状态数和有向弧条数相等9.词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此,( B ) A.词法分析器应作为独立的一遍B.词法分析器作为子程序较好C.词法分析器分解为多个过程,由语法分析器选择使用.D.词法分析器并不作为一个独立的阶段10.如果L(M1)=L(M2),则M1与M2( A )A .等价B .都是二义的C .都是无二义的D .它们的状态数相等 11.文法G :S →xSx|y 所识别的语言是( C )A .xyxB .(xyx)* c .x n yx n (n ≥0) d .x *yx *12.文法G 描述的语言L(G)是指( A ) A.⎭⎬⎫⎩⎨⎧∈⇒=+*,|)(T V S G L αααB .⎭⎬⎫⎩⎨⎧⋃∈⇒=+*)(,|)(N T V V S G L ααα C .⎭⎬⎫⎩⎨⎧∈⇒=**,|)(T V S G L αααD .⎭⎬⎫⎩⎨⎧⋃∈⇒=**)(,|)(N T V V S G L ααα 13.有限状态自动机能识别( C )A .上下文无关文法B .上下文有关文法C .正规文法D .短语文法14.如果文法G 是无二义的,则它的任何句子( A ) A .最左推导和最右推导对应的语法树必定相同 B .最左推导和最右推导对应的语法树可能不同 C .最左推导和最右推导必定相同D .可能存在两个不同的最左推导,但它们对应的语法树相同 15.由文法的开始符经0步或多步推导产生的文法符号序列是( C ) A .短语 B .句柄 C .句型 D .句子 16.文法G :E →E+T|T T →T*P|P P →(E)|i则句型P+T+i 的句柄为( B )A .P+TB .PC .P+T+iD .i 17.文法G :S →b|∧|(T) T →T ∨S|S 则FIRSTVT(T)=( C )A .{ b ,∧,( }B .{ b ,∧,) }C .{ b ,∧,(,∨ }D .{ b ,∧,),∨ } 18.产生正规语言的文法为( D )A .0型B .1型C .2型D .3型19.任何算符优先文法( D )优先函数。

广东工业大学 编译原理 模拟试卷4

广东工业大学 编译原理 模拟试卷4

编译原理试题计算机学院_____级班学号姓名一选择题【】1.词法分析器的输入是。

A.符号串B.源程序C.语法单位D.目标程序【】2.两个有穷自动机等价是指它们的。

A.状态数相等B.有向弧数相等C.所识别的语言相等D.状态数和有向弧数相等【】3.文法G:S → xSx | y 所识别的语言是。

A.xy*x B.(xyx)* C.xx*yxx* D.x*yx*【】4.设a,b,c为文法的终结符,且有优先关系a≡b和b≡c,则。

A.必有a≡c B.必有c≡aC.必有b≡a D.选项A、B和C都不一定成立【】5.若状态k含有项目“A→α.”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A →α”归约的语法分析方法是。

A.LALR分析法B.LR(0)分析法C.LR(1)分析法D.SLR(1)分析法二判断题1、一个LL( l)文法一定是无二义的。

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

3、算符优先关系表不一定存在对应的优先函数。

4、同心集的合并有可能产生“移进/归约”冲突。

5、若主程序为0层, 过程p层次为k,则p的DISPLAY表中就有k+1个元素。

三填空题1、词法分析的任务是从___________中识别出一个个__________。

V则称“S →α.A”为项目,称“S 2、在LR(0)分析法中,若α,β∈V*且a∈T→α.aβ”为项目。

3、规范规约每次规约的是句型的______________。

算符优先分析法每次规约的是当前句型的____________。

四写一个文法,使其语言是奇数集,且每个奇数不以0开头。

五已知文法G(S):S→a|(T)T→T,S|S(1)给出句子(a,(a,a))的最左推导并画出语法树;(2)给出句型((T,S),a)的短语、直接短语、句柄。

六把语句if x>0 and y>0 then z:=x+yelse beginx:=x+2y:=y+3end;翻译成四元式序列。

七设文法G(S):S→S+aF|aF|+aFF→*aF|*a(1)消除左递归和左因子;(2)构造相应的FIRST和Follow集合;(3)构造预测分析表。

编译原理试题汇总 编译原理期末试题(8套含答案 大题集)

编译原理试题汇总 编译原理期末试题(8套含答案 大题集)

编译原理考试题及答案汇总一、选择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.编译过程中 , 语法分析器的任务就是__B___。

广工编译原理复习例题(有客观题的答案

广工编译原理复习例题(有客观题的答案

编译原理复习例题一选择题1.编译的各阶段工作都涉及 B 。

[A]词法分析 [B]表格管理 [C]语法分析 [D]语义分析2. D 型文法也称为正规文法。

[A] 0 [B] 1 [C] 2 [D] 33. D 文法不是LL(1)的。

[A]递归 [B]右递归 [C]2型 [D]含有公共左因子的4.文法E→E+E|E*E|i的句子i*i+i*i有 C 棵不同的语法树。

[A] 1 [B] 3 [C] 5 [D] 75.文法 S→aaS|abc 定义的语言是 C 。

[A]{a2k bc|k>0} [B]{a k bc|k>0}[C]{a2k-1bc|k>0} [D]{a k a k bc|k>0}6.若B为非终结符,则 A→α.Bβ为 D 。

[A]移进项目 [B]归约项目 [C]接受项目 [D]待约项目7.同心集合并可能会产生新的 D 冲突。

[A]二义 [B]移进/移进 [C]移进/归约 [D]归约/归约8.代码优化时所依据的是 C 。

[A]语法规则 [B]词法规则[C]等价变换规则 [D]语义规则9.表达式a-(-b)*c的逆波兰表示(@为单目减)为 B 。

[A]a-b@c* [B]ab@c*- [C]ab@- [D]ab@c-*10.过程的DISPLAY表是用于存取过程的 B 。

[A]非局部变量 [B]嵌套层次 [C]返回地址 [D]入口地址11. 已知右图所示自动机M,请问下列哪个字符串不是M[A] bbaa [B] abba [C] abab [D] aabb12.若状态k含有项目“A→α.”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A→α”归约的语法分析方法是 D 。

[A] LALR分析法 [B] LR(0)分析法[C] LR(1)分析法[D] SLR(1)分析法13.有一语法制导翻译如下所示:(第8章)S->bAb {print “1” }A->(B {print “2” }A->a {print “3” }B->Aa) {print “4” }若输入序列为b(((aa)a)a)b,则采用自下而上的分析方法,则输出是 B 。

完整word版编译原理考试试题及答案

完整word版编译原理考试试题及答案

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

编译原理考试习题及答案

编译原理考试习题及答案

( T ② S ① a
T ,
T ④ S ③ a
2019/1/29
CH.5.练习题3(P133.)

3.(1) 计算练习2文法G2的FIRSTVT和LASTVT。 S→a||(T) T→T,S|S

(1) 解: (执行相应的算法可求得) FIRSTVT(S)={ a, ∧, ( } FIRSTVT(T)={ , , a, ∧, ( } LASTVT(S)={ a, ∧, ) } LASTVT(T)={ , , a, ∧, ) }
(1) 正规式 1(0|1)*101
0
0
DFA:
3,2
1 0
3,5,2
1 1 0
x
1
1,3,2
1
0
3,4,2
1
3,Y,4,2 I0 I1 1 3 3 3 5 3
I {X} {1,3,2} {3,2} {3,4,2} {3,5,2} {3,Y,4,2}
I0 {3,2} {3,2} {3,5,2} {3,2} {3,5,2}
2019/1/29 22
CH.5.练习题2(P133.)

2.(2).给出(a,(a,a))“移进-归约”的过程。 (2) 解: (a,(a,a))的“移进-归约”过程: 步骤 符号栈 输入串 动作 9 #(T,( S ,a))# 归约 S → a 10 #(T,(T , a ))# 归约 T → S 11 #(T,(T, a ))# 移进 , 12 #(T,(T, a ))# 移进 a 13 #(T,( T,S ))# 归约 S → a 14 #(T, (T ) )# 归约 T → T,S 15 #(T, (T) )# 移进 ) 16 #( T, S )# 归约 S → (T)

编译原理考试题及答案

编译原理考试题及答案

编译原理考试题及答案一、选择题(每题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. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。

《编译原理》考试试题及答案(汇总)

《编译原理》考试试题及答案(汇总)

《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个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.构造编译程序应掌握。

《编译原理》考试试题及答案(汇总)

《编译原理》考试试题及答案(汇总)

《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个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

【优质文档】广工编译原理试卷A

A 一个 SLR ( 1)文法一定也是 LALR ( 1)文法
B 一个 LR ( 1)文法一定也是 LALR ( 1)文法
4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足
LL ( 1)文法的 ( A ):
A 必要条件
B 充分必要条件
5. ( D )不是 NFA 的成分。
A 由穷字母表
B 初始状态集合
C 终止状态集合 D 有限状态集合
6.( C )不是编译程序的组成部分
A 词法分析程序 B 代码生成程序 C 设备管理程序 D 语法分析程序
7.有文法 G=({S},{a},{S → SaS, S→ ε},S), 该文法是( B )。 A. LL(1) 文法 B. 二义性文法 C 算符优先文法 D SLR(1) 文法
$$.FC=$1.FC;} E2→E1E2:{$$.place=$2.place;
$$.temp=NXQ; GEN(j,0,0,0); BackPatch($1,FC,NXQ);} E2→E2E:{$$.place=$2.place; BackPatch($1,temp,NXQ);}
状态 X 1 2 3
确定化后如下图
学习必备 欢迎下载
第 4 题( 10 分) 给出文法 G[S] 的 LR(1) 项目集规范族中 I 0 项目集的全体项目。 G[S] 为: S → BD|D
B →aD|b D →B
答:
解 :I 0
第 5 题 (10 分)文法 G[M] 及其 LR 分析表如下,请给出对串 dbba#的分析过程。
8 给定文法 A → bA|cc ,则符号串① cc ② bcbc ③ bcbcc ④ bccbcc ⑤bbbcc 中,是该文法句子的

编译原理期末试题(含答案+大题集+重要知识点)

编译原理期末试题(含答案+大题集+重要知识点)

《编译原理》期末试题(一)一、是非题(请在括号内,正确的划√,错误的划×)(每个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.构造编译程序应掌握______。

编译原理考试题及答案

编译原理考试题及答案

编译原理考试题及答案一、选择题(每题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. 编译器的运行时系统在内存管理中,需要处理________和垃圾收集。

编译原理试题及答案

编译原理试题及答案

编译原理试题及答案一、选择题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. 描述自顶向下和自底向上语法分析方法的主要区别。

答:自顶向下的语法分析方法从开始符号开始,尝试将输入的记号序列归约为语法中的产生式规则,直到得到完整的抽象语法树。

广工编译原理复习

广工编译原理复习

编译原理复习——Always麦第一章引论●什么是编译程序:翻译程序:将一种语言(源语言)翻译成另一种逻辑上等价的语言(目标语言)的程序。

编译程序:源语言为高级语言,目标语言是低级语言(汇编或机器语言)的翻译程序。

●●图●图1.10 编译程序结构框图 P6●前端、后端的概念:前端:与源语言有关,而与目标机无关的编译程序后端:与目标机有关,而与源语言无关的编译程序●遍、趟的概念:是对源程序或源程序的中间结果从头到尾扫描并完成规定任务的过程第二章PL/0 编译程序的实现●P18 三个变量通过三个全程量 SYM 、ID和NUM 将识别出的单词信息传递给语法分析程序。

SYM:存放单词的类别,用内部编码形式表示。

ID:存放用户所定义的标识符的值。

即标识符字符串的机内表示。

NUM:存放用户定义的数。

●P22 符号表【画】TX: table表的下标指针,是以值参数形式使用的。

DX:计算每个变量在运行栈中相对本过程基地址的偏移量,每次都会初始化为3●P29 运行栈【画】RA返回地址:记录调用该过程时目标程序的断点,即调用过程指令的下一条指令的地址DL动态链:指向调用该过程前正在运行过程的数据段基地址。

SL静态链:指向定义该过程的直接外过程(或主程序)运行时最新数据段的基地址●P28 I P T 寄存器I:指令寄存器。

存放当前正在解释的一条目标指令P:程序地址寄存器。

指向下一条要执行的目标程序的地址T:栈顶寄存器。

指向当前栈中最新分配的单元B: 总是指向当前执行过程活动记录的起始地址●CX 、 CODECX为目标代码CODE数组的下标指针●第三章文法和语言3.1文法的直观概念✓语法:每个程序的构成规律。

判断“句子”是否为语言的合法程序的规则。

包括:词法规则→字符组成的单词;语法规则→单词组成语法单元✓语义:每个程序的含义。

赋予程序意义的规则✓语用:每个程序和使用者之间的关系3.2符号和符号串→→基本不考3.3文法和语言的形式定义●文法的定义:文法是描述语法的形式化工具文法G是一个四元组( VN , VT, P, S )VN为非终结符的有穷集合 VN∩VT = ФVT为终结符的有穷集合P为产生式(或规则式)有穷集合形如 x→yS为文法的开始符号 S∈VN ,至少要在一条产生式的左部出现●推导:【按要求推导】★ A→Ay 直接推导 A => Ay 间接推导直接推导:每条产生式只能用一次最左推导:对于直接推导v=xAy=>xuy=w,若x∈VT*,即A是v中最左非终结符,则称此直接推导为最左直接推导,记作v=>w。

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

《编译原理》期末试题(二)1、描述由正规式b*(abb*)*(a| ε)定义的语言,并画出接受该语言的最简DFA。

2、证明文法E → E + id | id是SLR(1)文法。

3、下面是表达式和赋值语句的文法,其中and的类型是bool ⨯ bool → bool,+的类型是int ⨯ int → int,=的类型是int ⨯ int → bool,:= 要求id和E的类型都是int或者都是bool。

为该文法写一个语法制导定义或翻译方案,它完成类型检查。

S →id := EE → E and E | E + E | E = E |id6、描述由正规式b*a(bb*a)*b*定义的语言,并画出接受该语言的最简DFA。

7、下面的文法产生代表正二进制数的0和1的串集:B → B 0 | B 1 | 1下面的翻译方案计算这种正二进制数的十进制值:B →B1 0 {B.va l := B1.val⨯ 2 }| B1 1 {B.val := B1.val⨯ 2 +1}| 1 {B.val := 1 }请消除该基础文法的左递归,再重写一个翻译方案,它仍然计算这种正二进制数的十进制值。

编译原理试卷二答案1、由正规式b*(abb*)*(a| ε)定义的语言是字母表{a, b}上不含子串aa的所有串的集合。

最简DFA如下:2、先给出接受该文法活前缀的DFA如下:I0和I3都只有移进项目,肯定不会引起冲突;I2和I4都无移进项目并仅含一个归约项目,也肯定不会引起冲突;在I1中,E'的后继符号只有$,同第2个项目的展望符号“+”不一样,因此I1也肯定不会引起冲突。

由此可以断定该文法是SLR(1)的。

3、语法制导定义如下。

S →id := E { S.type := if (id.type = bool and E.type = bool) or (id.type = int and E.type = int)then type_ok else type_error }E → E1and E2 { E.type := if E1.type = bool and E2.type = bool then bool elsetype_error }E → E1 + E2 { E.type := if E1.type = int and E2.type = int then int else type_error }E → E1 = E2{ E.type := if E1.type = int and E2.type = int then bool else type_error }E →id { E.type := lookup(id.entry) }6、正规式b*a(bb*a)*b*体现的特点是,每个a的左边都有若干b,除非a是第一个字母。

该正规式定义的语言是:至少含一个a,但不含子串aa的所有a和b的串集。

最简DFA如下:7、消除左递归后的文法:B → 1 B'B'→ 0 B' | 1 B' | ε相应的翻译方案如下:B → 1 {B'.i := 1 }B'{B.val := B'.val}B'→0 {B'1.i := B'.i⨯ 2 } B'1 {B'.val := B'1.val}| 1 {B'1.i := B'.i⨯ 2 +1} B'1 {B'.val := B'1.val}| ε {B'.val := B'.i}《编译原理》期末试题(三)1、从优化的范围的角度,优化可以分哪两类?对循环的优化可以有哪三种?答:从优化的范围的角度,优化可以分为局部优化和全局优化两类;对循环的优化有三种:循环不变表达式外提、归纳变量删除与计算强度削减。

2、写出表达式a=b*c+b*d对应的逆波兰式、四元式序列和三元式序列。

答:逆波兰式: abc*bd*+:=四元式序列:三元式序列: OP ARG1 ARG2(1) (*, b , c , t 1) (1) (* b , c ) (2) (*, b , d , t 2) (2) (* b , d ) (3) (+, t1, t 2,t 3) (3) (+ (1), (2)) (4) (:=, t3, /, a)(4) (:= (3), a)3、对于文法G(S):)Ma L a |(L M bMb S →→→答:1) b Ma b Lb b bMb S )((⇒⇒⇒ 2) 短语: Ma), (Ma), b(Ma)b 直接短语: Ma) 句柄: Ma)三、 设有字母表{a ,b}上的正规式R=(ab|a)*。

解:(1)((3)对(2)得到的DFA 化简,合并状态0和2 为状态2:(4)令状态1和2分别对应非终结符B和AG: A→aB|a|ε; B→aB|bA|a|b|ε;可化简为:G: A→aB|ε;B→aB|bA|ε四、设将文法G改写成等价的LL(1)文法,并构造预测分析表。

G:S→S*a T|aT|*aT; T→+a T|+a解:消除左递归后的文法G’: S→aTS’|*aTS’S’→*aTS’|εT→+aT|+a 提取左公因子得文法G’’:S→aTS’|*aTS’S’→*aTS’|εT→+aT’T’→T|εSelect(S→aTS’)={a}Select(S→*aTS’)={*}Select(S→aTS’)∩Select(S→*aTS’)=ФSelect(S’→*aTS’)={*}Select(S’→ε)=Follow(s’)={#}Select(S’→*aTS’)∩Select(S’→ε)= ФSelect(T→+aT’)={+}Select(T’→T)=First(T) ={+}Select(T’→ε)=Follow(T’)={*,#}Select(T’→T)∩Select(T’→ε)= Ф所以该文法是LL(1)文法。

6设文法S→A;A→BA|ε;B→aB|b解:(1)拓广文法G’:(0) S’→S (1) S→A (2) A→BA(3) A→ε(4)B→aB (5) B→b;FIRST(A) = {ε, a, b};FIRST(B) = {a, b}构造的DFA 如下:项目集规范族看出,不存在冲突动作。

∴该文法是LR(1)文法。

(2) LR(1)分析表如下:(3)输入串abab 的分析过程为:五、给定文法G[S]:S→aA|bQ; A→aA|bB|b;B→bD|aQ ;Q→aQ|bD|b;D→bB|aA ;E→aB|bFF→bD|aE|b构造相应的最小的DFA 。

解:先构造其NFA:用子集法将NFA确定化:将S、A、Q、BZ、DZ、D、B重新命名,分别用0、1、2、3、4、5、6表示。

因为3、4中含有z,所以它们为终态。

令P=({0,1,2,5,6},{3,4})用b进行分割:P1=({0,5, 6},{1,2},{3,4})再用b进行分割:P2=({0},{5, 6},{1,2},{3,4})再用a、b 进行分割,仍不变。

再令{0}为A,{1,2}为B,{3,4}为C,{5,6}为D。

最小化为右上图。

《编译原理》期末试题(四)一、简述编译程序的工作过程。

(10)①词法分析②语法分析③语义分析④代码优化⑤目标代码生成三、给出下面语言的相应文法:(15)L 1={a n b n| n ≥1} L 2={a n b m+n a m | n ≥1,m ≥0}四、对下面的文法G :S →a | b | (T ) T →T ,S | S(1) 消去文法的左递归,得到等价的文法G2;(2) 判断文法G2是否LL (1)文法,如果是,给出其预测分析表。

(15) G2:S →a | b | (T )T → ST ’T ’→,S T ’ | ε五、设有文法G[A]:A →BCc | gDBB →bCDE |εC →DaB | caD →dD |εE →gAf | c(1) 计算该文法的每一个非终结符的FIRST 集和FOLLOW 集; (2)是LL (1)文法。

G1: A →aAb |ab G1: S →AB A →aAb | ab B →bBa | ε七、有定义二进制整数的文法如下:L →LB | BB →0 | 1构造一个翻译模式,计算该二进制数的值(十进制的值)。

(15)引入L、B的综合属性val,翻译模式为:S→L {print(L.val)}L →L1B {L.val= L1.val*2+B.val}L →B {L.val= B.val}B →0 {B.val=0}B →1 {B.val=1}《编译原理》期末试题(五)三有穷自动机M接受字母表 ={0,1}上所有满足下述条件的串:每个1都有0直接跟在右边。

构造一个最小的DFA M及和M等价的正规式。

【】【】四证明正规式(ab)*a 与正规式a(ba)*等价(用构造他们的最小的DFA方法)。

【答案:】五写一个文法,使其语言是:L = { 1n0m1m0n | m,n≥0 }【】【】五文法G:S → 1S0 | AA →0A1 | ε六对文法G[S]S → aSb | PP → bPc | bQcQ → Qa | a(1)它是否是算符优先文法?请构造算符优先关系表(2)文法G[S]消除左递归、提取左公因子后是否是LL(1)文法?请证实。

【】【】1.求出G[S]的FIRSTVT集和LASTVT集:FIERSTVT(S)={a,b} LASTBVT(S)={b,c}FIERSTVT(P)={b} LASTBVT(P)={c}FIERSTVT(Q)={a} LASTBVT(Q)={a}构造优先关系表为:,所以该文法不是算符优先文法。

2.消除左递归和提取左公因子后的文法为:S → aSb | PP → bP’P’→ Pc |QcQ →aQ’Q’→aQ’|ε求具有相同左部的两个产生式的Select集的交集:Select(S→aSb)∩Select(S→P) = {a}∩First(P) = {a}∩{b} = ФSelect(P’→Pc)∩Select(P’→Qc) = First(P)∩First(Q)={b}∩{a}=ФSelect(Q’→aQ’)∩Select(Q’→ε) = {a}∩Follow(Q) = {a}∩{c} = Ф所以修改后的文法是LL(1)文法。

七已知文法G为:(0)S′→ S(1)S → aAd(2)S → bAc(3)S → aec(4)S → bed(5) A → e试构造它的LR(1)项目集、可归前缀图和LR(1)分析表。

相关文档
最新文档