合肥工业大学编译原理期末复习

合集下载

《编译原理》期末复习资料(完整版)

《编译原理》期末复习资料(完整版)

1.给出语言{a n b n a m b m | n,m≥0}的一个上下文无关文法。

(6分)解:G[S]:S—>ABA—>aAb |εB—>aBb |ε2.给出语言{1 n 0 m 1 m0 n | n,m≥0}的一个上下文无关文法。

解:G[S]:S—>1S0 | AA—>0A1 |ε3.P48 第6题(5)、(6).画语法树6、已知文法G:<表达式>::=<项>|<表达式>+<项><项>::=<因子>|<项>*<因子><因子>::=(<表达式>)|i(5)i+(i+i) (6)i+i*i解:(5)语法树:(6)语法树:4.P48第13题直接短语等13、一个上下文无关文法生成句子abbaa的推导树如下:(3)求直接短语解:直接短语有:a ε bP102例题6.1及其分析.( 后加画语法树)例6.1 设文法G[S]为:(1)S—>aAcBe(2)A—>b(3)A—>Ab(4)B—>d对输入串abbcde#进行分析,检查该符号串是否是G[S]的句子。

步骤符号栈输入符号串动作(1)# abbcde# 移进(2)#a bbcde# 移进(3)#ab bcde# 归约(A—>b)(4)#aA bcde#移进(5)#aAb cde# 归约(A—>Ab)(6)#aA cde# 移进(7)#aAc de# 移进(8)#aAcd e# 归约(B—>d)(9)#aAcB e# 移进(10)#aAcBe # 归约(S—>aAcBe)(11)#S # 接受一、计算分析题(60%)1、正规式→ NFA→ DFA→最简DFAP72第1题(1)、(4);第一题1、构造下列正规式相应的DFA.(1)1(0|1)*101解:先构造NFA0 1S AA A ABAB AC ABAC A ABZABZ AC AB除S,A外,重新命名其他状态,令AB为B、AC为C、ABZ为D,因为D含有Z(NFA的终态),所以0 1S AA A BB C BC A DD C B(4) b((ab)*|bb)*ab解:先构造NFA得到DFA如下所示:P72第4题(a)4、把下图确定化和最小化解:确定化:a b0 01 101 01 11 0、{1},其中A为初态,A,B为终态,因此有:a bA B CB B CC A最小化::初始分划得终态组{A,B},非终态组{C}Π0:{A,B},{C},对终态组进行审查,判断A和B是等价的,故这是最后的划分。

编译原理复习及典型题解

编译原理复习及典型题解

合肥工业大学 计算机与信息学院软件所
3.符号串ab1b2是文法G[A]:A→aB, B→bB|b的句子,该 句子的句柄是________。 B
A.b1
B. b2
解释: a A
C. a
D. b1b2
B b1 B b2
合肥工业大学 计算机与信息学院软件所
4.LL(1)文法中第一个L表示________。 C A. 最左推导 B. 最左归约 C. 从左到右识别输入串 D. 规范归约
编译原理
复习及典型题解
合肥工业大学 计算机与信息学院软件所
一、单选题
1.文法所描述的语言是 D 的集合。 A. 文法的字汇表V中符号组成的符号串 B. 文法的字汇表V中终结符号组成的符号串 C. 由文法开始符推导的符号串 D. 由文法开始符推导的终结符号串
2.生成能被5整除的正整数的文法G[Z]是________。 C A. G[Z]: Z→AC,A→BA|B,B→0|1|2|…|9,C→0|5 B. G[Z]: Z→AC,A→BA|ε ,B→0|1|2|…|9,C→0|5 C. G[Z]:Z→DA0|A5,A→BA|ε ,B→0|D,D→1|2|…|9 D. G[Z]:Z→AC|C,A→BA|B,B→0|1|2|…|9,C→0|5
0
合肥工业大学 计算机与信息学院软件所
6.给定文法G[S]:S→aSb |ε , 试判断G[S]是否为 SLR(1)文法。 解:①改写文法为G [S ]:
′ ′
G′[S′]: (0) S′→S (1) S→aSb (2) S→ε
②构造识别LR(0)活前缀DFA
I0
I1 S → · S S′→S· S S→· aSb I2 a S→a· S→· Sb S→· aSb S→·

编译原理第三版期末复习

编译原理第三版期末复习

期末复习总结《编译原理》第一章:绪论一、填空问题①由于计算机只能认识机器语言,所以需要翻译程序将高级语言翻译成计算机可以识别的机器语言。

②编译程序的工作过程一般主要划分为词法分析,语法分析,中间代码生成,代码优化,目标代码生成等几个基本阶段,同时还会伴有表格管理和出错处理。

③如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两个阶段:编译阶段和运行阶段。

如果编译程序生成的目标程序是汇编语言的程序,则源程序的执行分为三个阶段:编译阶段,汇编阶段和运行阶段。

1-02.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序 ,则其翻译程序称为编译程序.1-03.编译方式与解释方式的根本区别在于是否生成目标代码 .1-05.对编译程序而言,输入数据是源程序,输出结果是目标程序 .1-10.一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括(1)c.其中, (2)b 和代码优化部分不是每个编译程序都必需的. 词法分析器用于识别 (3)c ,语法分析器则可以发现源程序中的 (4)d .(1) a.模拟执行器 b.解释器 c.表格处理和出错处理 d.符号执行器(2) a.语法分析 b.中间代码生成 c.词法分析 d.目标代码生成(3) a.字符串 b.语句 c.单词 d.标识符(4) a.语义错误 b.语法和语义错误 c.错误并校正 d.语法错误1-11.程序语言的语言处理程序是一种 (1)a . (2)b 是两类程序语言处理程序,他们的主要区别在于 (3)d .(1) a.系统软件 b.应用软件 c.实时系统 d.分布式系统(2) a.高级语言程序和低级语言程序 b.解释程序和编译程序c.编译程序和操作系统d.系统程序和应用程序(3) a.单用户与多用户的差别 b.对用户程序的查错能力c.机器执行效率d.是否生成目标代码1-12.汇编程序是将 a 翻译成 b ,编译程序是将 c 翻译成 d .a.汇编语言程序b.机器语言程序c.高级语言程序d. a 或者 be. a 或者 cf. b 或者 c1-13.下面关于解释程序的描述正确的是 b .(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于COBOL 和 FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的a. (1)(2)b. (1)c. (1)(2)(3)d.(2)(3)1-14.高级语言的语言处理程序分为解释程序和编译程序两种.编译程序有五个阶段,而解释程序通常缺少 (1)e 和 (1)b .其中, (1)e 的目的是使最后阶段产生的目标代码更为高效.与编译系统相比,解释系统 (2)d .解释程序处理语言时,大多数采用的是 (3)b 方法.(1): a. 中间代码生成 b.目标代码生成 c.词法分析 d.语法分析 e.代码优化(2): a.比较简单,可移植性好,执行速度快b.比较复杂,可移植性好,执行速度快c.比较简单,可移植性差,执行速度慢d.比较简单,可移植性好,执行速度慢(3): a.源程序命令被逐个直接解释执行 b.先将源程序转化为之间代码,再解释执行c.先将源程序解释转化为目标程序,在执行d.以上方法都可以1-15.用高级语言编写的程序经编译后产生的程序叫 b .用不同语言编写的程序产生 a 后,可用 g 连接在一起生成机器可执行的程序.在机器中真正执行的是 e .a. 源程序b. 目标程序c. 函数d. 过程e. 机器指令代码f. 模块g. 连接程序h.程序库1-16.要在某一台机器上为某种语言构造一个编译程序,必须掌握下述三方面的内容: c , d , f .a. 汇编语言b. 高级语言c. 源语言d. 目标语言e. 程序设计方法f. 编译方法g. 测试方法h. 机器语言1-17.由于受到具体机器主存容量的限制,编译程序几个不同阶段的工作往往被组合成(1)d ,诸阶段的工作往往是 (2)d 进行的.(1) a. 过程 b. 程序 c. 批量 d.遍(2) a. 顺序 b. 并行 c. 成批 d.穿插1-18.编译程序与具体的机器 a , 与具体的语言 a .a. 有关b.无关1-19.使用解释程序时,在程序未执行完的情况下, a 重新执行已执行过的部分.a. 也能b.不可能1-20.编译过程中,语法分析器的任务就是 b .(1) 分析单词是怎样构成的(2)分析单词串是如何构成语句和说明的(3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构a. (2)(3)b. (2)(3)(4)c. (1)(2)(3)d.(1)(2)(3)(4)1-21.编译程序是一种常用的 b 软件.a. 应用b. 系统1-22.编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过 b 这几步.(1) 编辑 (2) 编译 (3) 连接 (4) 运行a. (1)(2)(3)(4)b. (1)(2)(3)c. (1)(3)d.(1)(4)1-23.编译程序必须完成的工作有 a .(1) 词法分析 (2) 语法分析 (3) 语义分析(4) 代码生成 (5) 之间代码生成 (6) 代码优化a. (1)(2)(3)(4)b. (1)(2)(3)(4)(5)c. (1)(2)(3)(4)(5)(6)d. (1)(2)(3)(4)(6)e. (1)(2)(3)(5)(6)1-24.“用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”这种说法a .a. 不正确b.正确1-25.把汇编语言程序翻译成机器可执行的目标程序的工作是由 b 完成的.a. 编译器b. 汇编器c. 解释器d. 预处理器1-26.编译程序生成的目标程序 b 是机器语言的程序.a. 一定b. 不一定1-27.编译程序生成的目标程序 b 是可执行的程序.a. 一定b. 不一定1-28.编译程序是一种 B 。

编译原理期末总结复习

编译原理期末总结复习

编译原理期末总结复习(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如公文写作、报告体会、演讲致辞、党团资料、合同协议、条据文书、诗词歌赋、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, this shop provides you with various types of classic sample essays, such as official document writing, report experience, speeches, party and group materials, contracts and agreements, articles and documents, poems and songs, teaching materials, essay collections, other sample essays, etc. Learn about the different formats and writing styles of sample essays, so stay tuned!编译原理期末总结复习编译原理期末总结复习(精选3篇)编译原理期末总结复习篇1一、简答题1.什么是编译程序?答:编译程序是一种将高级语言程序(源程序)翻译成低级语言(目标程序)的程序。

编译原理期末复习2023年修改整理

编译原理期末复习2023年修改整理

编译原理一、单项抉择题1、将编译程序分为假设干个“遍〞是为了〔〕。

BA.提高程序的执行效率B.使程序的构造更加清晰C.利用有限的机器存并提高机器的执行效率D.利用有限的机器存但降低了机器的执行效率2、构造编译程序应掌握〔〕。

DA.源程序B.目标语言C.编译方法D.以上三项都是3、变量应当〔〕。

CA.持有左值B.持有右值C.既持有左值又持有右值D.既不持有左值也不持有右值4、编译程序绝大多数时刻花在〔〕上。

DA.出错处理B.词法分析C.目标代码生成D.治理表格5、〔〕不大概是目标代码。

DA.汇编指令代码B.可重定位指令代码C.绝对指令代码D.中间代码6、编译程序是对〔〕。

DA.汇编程序的翻译B.高级语言程序的解释执行C.机器语言的执行D.高级语言的翻译7、正规式M1和M2等价是指〔〕。

CA.M1和M2的状态数相等B.M1和M2的有象弧条数相等C.M1和M2所识别的语言集相等D.M1和M2状态数和有象弧条数相等8、假如文法G是无二义的,则它的任何句子〔〕。

AA.最左推导和最右推导对应的语法树必定一样。

B.最左推导和最右推导对应的语法树大概一样。

C.最左推导和最右推导必定一样。

D.大概存在两个不同的最左推导,但它们对应的语法树一样。

9、文法G:S→S+T|TT→T*P|PP→(S)|i句型P+T+i的短语有〔〕BA.i,P+TB. P,P+T,i,P+T +iB.P+T + i D. P,P+T,i10、产生正规语言的文法为〔〕。

DA.0型B.1型C.2型D.3型11、文法G:S→b|˄|(T)˅S|ST→T则FIRSTVT(T)=() CA.{b,˄,(}B.{b,˄,)}C.{b,˄,(,˅}D.{b,˄,),˅}12、给定文法:A→bA | cc,下面的符号串中,为该文法句子的是〔〕。

A①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbcc可选项有:A.①B.①③④⑤C.①④D.①④⑤13、采纳自上而下分析,必须〔〕。

编译原理期末考试题(含答案)

编译原理期末考试题(含答案)

编译原理期末考试题(含答案)1. 请简要解释编译原理的定义和作用。

编译原理是研究将高级语言源程序转化为等价的目标程序的一门学科。

它的主要作用是将高级语言的源代码翻译为计算机能够执行的目标代码,从而实现程序的运行。

2. 请列举并解释编译过程的各个阶段。

- 词法分析:将源代码划分为一个个词法单元,如变量、关键字等。

- 语法分析:根据语法规则,将词法单元组合为语法树,检查语法结构是否正确。

- 语义分析:对语法树进行语义检查,如类型匹配、作用域等。

- 中间代码生成:将语法树转化为中间代码表示形式,方便后续优化。

- 代码优化:对中间代码进行优化,提高程序执行效率。

- 目标代码生成:将优化后的中间代码转化为目标机器代码。

3. 请解释符号表在编译过程中的作用。

符号表是编译器在编译过程中用来管理变量、函数、类型等标识符的数据结构。

它的主要作用是记录标识符的相应属性,如类型、作用域等,以便在后续的语法、语义分析以及代码生成过程中进行查找、检查等操作。

4. 请简要解释LL(1)文法的定义和特点。

LL(1)文法是一种上下文无关文法,它具有以下特点:- 对于给定的非终结符,它的产生式右部的首符号不相同。

- 对于给定的产生式右部的首符号,它的产生式右部不相同。

- 通过向前查看一个符号,就能确定所选用的产生式。

5. 请简要解释词法分析器的作用和实现方式。

词法分析器的主要作用是将源代码分解为一个个词法单元,如变量名、关键字等。

它的实现方式一般采用有限自动机,通过定义正则表达式描述各个词法单元的模式,然后根据模式匹配的结果生成相应的词法单元。

答案仅为参考,请以实际考试为准。

编译原理期末考试复习整理(详细列出考试重点+重点例题)

编译原理期末考试复习整理(详细列出考试重点+重点例题)

编译原理期末考试复习整理(详细列出考试重点+重点例题)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March目录第一章 (3)词法分析: (3)语义法分析 (3)中间代码 (3)第二章 (3)1.根据语言写出文法 (4)2.根据文法写语,描述其特点(必考大题2-3类型) (4)3.文法的规范推导、语法树、短语、句柄(必考大题,2-7,2-11) (6)第三章 (11)1.给出一个正规文法 (左线性、右线性方法),写出其状态转换图(必考) (11)1.1右线性文法写出状态转换图 (必考) (11)1.2状态转换图写出右线性文法G (12)1.3左线性文法写出状态转换图 (必考) (13)2.非确定自动机的确定化 (14)第四章 (15)第五章 (15)属性文法与属性翻译文法 (15)逆波兰式(大题) (16)四元式(大题) (16)第一章词法分析:分析源程序的结构,判断它是否是相应程序设计语言的合法程序语义法分析的任务是根据语言的语义规则对语法分析得到的语法结构进行静态的语义检查(确定类型、类型与运算合法性检查、识别含义等),并且转换成另一种内部形式(语义树)表示出来或者直接用目标语言表示出来。

中间代码是一种结构简单、含义明确的记号系统,这种记号系统可以设计为多种多样的形式,重要的设计原则为两点:一是容易生成;二是便于优化、移值;三是容易将它翻译成目标代码第二章文法G定义为四元组(V N,V→,P,S )其中V N为非终结符号(或语法实体,或变量)集;V→为终结符号集;P为产生式(也称规则)的集合; V N,V→和P是非空有穷集。

S称作识别符号或开始符号,它是一个非终结符,至少要在一条产生式中作为左部出现。

V N和V→不含公共的元素,即V N ∩V→ = φ,通常用V 表示V N∪ V→,V称为文法G的字母表或字汇表。

编译原理期末复习题(答案)

编译原理期末复习题(答案)

北方工业大学《编译原理》课程期末复习题(答案)A 卷开课学院考试方式:闭卷考试时间:120 分钟班级 姓名 学号 一判断题(每个小题1分,共10分)1. 程序语言主要由语法和语义两方面定义。

( )2. 自上而下分析方法会遇到的主要问题有左递归和回溯。

( )3. 已知文法G :E →i | EAE ,A →+|* ,其中的终结符号集包括{i ,+}。

( )4. 编译程序是将高级语言程序翻译成机器语言程序。

( )5. 只含有综合属性的属性文法称为S-属性文法。

( )6. LL(1)文法中第一个L 的含义是从左到右扫描输入串。

( )7. 在编译中进行语法检查的目的是为了发现程序中所有错误。

( )8. 一个语义子程序描述了一个文法所对应的翻译工作。

( )9. 一个句型的直接短语是唯一的。

( ) 10. 确定的自动机以及不确定的自动机都能正确地识别正规集。

( ) 解:1.√ 2.√ 3.× 4.× 5.√ 6.√ 7.× 8.× 9.× 10.√二、选择题(每个小题1分,共20分)1. 文法分为四种类型,即0型、1型、2型、3型。

其中3型文法是____。

A. 短语文法 B. 正规文法 C. 上下文有关文法 D. 上下文无关文法2. 不可能是目标代码。

A. 汇编指令代码B. 可重定位指令代码C. 绝对指令代码D. 中间代码 3. 将编译程序分成若干个“遍”是为了 。

A. 提高程序的执行效率B. 利用有限的机器内存并提高机器的执行效率C. 使程序的结构更加清晰D. 利用有限机器内存但降低了机器的执行效率 4. 后缀式ab+cd+/可用表达式 来表示。

订线装A. a+b/c+dB. (a+b)/(c+d)C. a+b/(c+d)D. a+b+c/d5. 文法G:S→xSx|y所识别的语言是。

A. xyxB. (xyx)*C. x n yx n(n≥0)D. x*yx*6. 文法G[E]:E→E+T|TT→T*P|PP→(E)|i则句型P+T+i的句柄和最左素短语为。

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

编译原理基础题一、选择题1、在使用高级语言编程时,首先可通过编译程序发现源程序的全部( A)错误和部分语义错误。

A、语法B、语义C、语用D、运行2、编译过程中,语法分析器的任务是( B)。

(1)分析单词是怎样构成的; (2)分析单词串是如何构成语句和说明的;(3)分析语句和说明是如何构成程序的;(4)分析程序的结构A、(2)(3)B、(2)(3)(4)C、(1)(2)(3)D、(1)(2)(3)(4)3.生成能被5整除的正整数的文法G[Z]是_ C____。

A. G[Z]: Z→AC,A→BA|B,B→0|1|2|…|9,C→0|5B. G[Z]: Z→AC,A→BA|ε,B→0|1|2|…|9,C→0|5C. G[Z]:Z→DA0|A5,A→BA|ε,B→0|D,D→1|2|…|9D. G[Z]:Z→AC|C,A→BA|B,B→0|1|2|…|9,C→0|54、编译程序中的语法分析器接受以( C)为单位的输入,并产生有关信息供以后各阶段使用。

A、表达式B、产生式C、单词D、语句5、算符优先分析法每次都是对( D)进行归约。

A、直接短语B、句柄C、素短语D、最左素短语6、过程调用时,参数的传递方法通常有( C )。

(1)传值;(2)传地址;(3)传结果;(4)传名A、(1)(2)B、(1)(2)(3)C、(1)(2)(4)D、(1)(2)(3)(4)7、在编译方法中,动态存储分配的含义是( A )。

A、在运行阶段对源程序中的量进行分配B、在编译阶段对源程序中的量进行分配C、在编译阶段对源程序中的量进行分配,在运行时这些量的地址可以根据需要改变D、以上都不对8、a:= a+b*c↑(d/e)/f的逆波兰记号表示是()。

A、aabc*+↑de/f/:=B、aabcde↑/*f/:=C、aabcde/↑*f/+:=D、以上都不对。

9.算符文法是指 A 的文法。

①没有形如U→...VW...的规则(U,V,W VN)②VT中任意两个符号之间至多存在一种算符优先关系③没有相同右部的规则④没有形如U→ε的规则A. ①B. ①和②C. ①、②和③D. ①、②、③和④10、编译程序绝大多数时间花在D上。

a.出错处理b.词法分析c.目标代码生成d.管理表格11.下述语句类中,_____A_ _____在编译阶段通常不产生可执行代码。

A. 变量说明语句B. 流程控制语句C. 输入输出语句D. 赋值语句12、词法分析器的输入是B。

a.单词符号串b.源程序c.语法单位d.目标程序13.在编译程序采用的优化方法中,D是在循环语句范围内进行的。

①合并已知常量②删除多余运算③删除归纳变量④运算强度削弱⑤代码外提A. ①④B. ①⑤C. ①④⑤D. ③④⑤14.程序的基本块是指__ D____。

A. 不含无条件转移语句的程序段B. 不含条件转移语句的程序段C. 不含停机的语句程序段D. 仅含有一个入口语句和一个出口语句的顺序程序段15、文法G描述的语言L(G)是指A。

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*)}16、如果文法G是无二义的,则它的任何句子α A 。

a. 最左推导和最右推导对应的语法树必定相同b. 最左推导和最右推导对应的语法树可能不同c. 最左推导和最右推导必定相同d. 可能存在两个不同的最左推导,但它们对应的语法树相同17、文法G:E→E+T|TT→T*P|PP→(E)|I则句型P+T+i的句柄和最左素短语为B 。

a.P+T和ib. P和P+Tc. i和P+T+id.P和T18、产生正规语言的文法为D。

a. 0型b. 1型c. 2型d. 3型19、有文法G:E→E*T|TT→T+i|i句子1+2*8+6按该文法G归约,其值为 B 。

a. 23 B. 42 c. 30 d. 1720、若a为终结符,则A→α·aβ为B项目a.归约b.移进c.接受d.待约21、就文法的描述能力来说,有C 。

a. SLR(1)⊂LR(0)b. LR(1)⊂LR(0)c. SLR(1)⊂LR(1)d.无二义文法⊂LR(1)22、一个A指明了在分析过程中的某时刻所能看到产生式多大一部分。

a.活前缀b.前缀c.项目d.项目集23、四元式之间的联系是通过 B 实现的。

a.指示器b.临时变量c.符号表d.程序变量24、表达式(┓A∨B)∧(C∨D)的逆波兰表示为 B 。

a. ┓AB∨∧CD∨b. A┓B∨CD∨∧c. AB∨┓CD∨∧d. A┓B∨∧CD∨25、终结符具有 D 属性。

a.传递b.继承c.抽象d.综合26、在编译方法中,动态存储分配的含义是 A 。

a. 在运行阶段对源程序中的数组、变量、参数等进行分配b. 在编译阶段对源程序中的数组、变量、参数进行分配c. 在编译阶段对源程序中的数组、变量、参数等进行分配,在运行时这些数组、变量、参数的地址可根据需要改变d. 以上都不正确27、栈式动态分配与管理在过程返回时应做的工作有。

a. 保护SPb. 恢复SPc.保护TOPd. 恢复TOP28、下列 C 优化方法不是针对循优化进行的。

a.强度削弱b.删除归纳变量c.删除多余运算d.代码外提29、对一个基本块来说, A 是正确的。

a.只有一个入口语句和一个出口语句b.有一个入口语句和多个出口语句c.有多个入口语句和一个出口语句d.有多个入口语句和多个出口语句二、填空题1、编译方式与解释方式的根本区别在于(是否生成目标代码)。

2、自顶向下语法分析方法会遇到的主要问题有(回溯)和(左递归带来的无限循环)。

3、自上而下语法分析方法的基本思想是:从(识别符号或开始符号)出发,不断建立(直接推导),试图构造一个推导序列,最终由它推导出与输入符号相同的(符号串)。

4、表达式a+b*(c+d/e)的逆波兰表示为(abcde/+*+ )。

5、文法符号的属性有(继承属性)和(综合属性)两种。

6.已知文法G[A]:A→(B)| a |ε,B→B,A | A,该文法的开始符号是_A__ ,非终结符号集合为___{A,B}___,终结符号集合为__{(,),a}_____。

7.已知文法G[S]:S→AB,A→ aAb | c,B→ aBb| d,则对于非终结符A,FOLLOW(A)=__ {a,b,d}____。

8、Chomsky定义的四种形式语言文法分别为: 0型文法--又称短语文法,1型文法--又称上下文有关文法,2型文法--又称(上下文无关)文法,3型文法--又称(正规)文法。

9、在PASCAL中,由于允许用户动态申请与释放内存空间,所以必须采用(堆)存储分配方式。

10、局部优化是局限于一个(基本块)范围内的一种优化。

11、编译程序的工作过程还会伴有(表格处理)和(出错处理)。

12.有这样一个推导过程,其每一步推导都是对符号串中最右的非终结符进行替换,我们把这种推导过程称为__最右推导(或规范推导)_______ 。

三、判断题1、一个有限状态自动机中,有且仅有一个唯一终态。

( F)2、自动机M和M′的状态数不同,则二者必不等价。

( F )3、对任意一个右线性文法G,都存在一个NFA M,满足L(G)=L(M)。

(T)4、对任何正规表达式e,都存在一个NFA M,满足L(G)=L(e)。

( T)5.在形式语言中,最右推导的逆过程称为规范归约。

( T )6.句型的每个直接短语都是某规则的右部。

( T )7.任何正规文法都是上下文无关文法。

( T )8. 计算机高级语言翻译成低级语言只有解释一种方式。

( F )9.自底而上语法分析方法的主要问题是候选式的选择。

( F )10.“用高级语言写的源程序都必须通过编译, 产生目标代码后才能投入运行”这种说法。

( F) 11.一个句型的句柄一定是文法某产生式的右部。

( T )12.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。

( ) 13.对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。

( )14.综合属性是用于“ 自上而下” 传递信息。

( F )15.使用语法制导翻译方法的编译程序能同时进行语法分析和语义分析。

( T )16. 终结符既可以有综合属性,又可以有继承属性。

( F )17. 逆波兰表示法表示表达式时无须使用括号。

( T )18. 由于C语言的函数允许递归调用,因此对C程序中的所有变量的单元分配一律采用动态分配方式。

( F )19. DISPLAY表用来记录每层过程的最新活动记录地址,因此它的大小运行时确定。

()20. 最左素短语一定是短语。

( T )21. LR分析中的活前缀一定包含某句型的句柄的一部分或全部。

( T )22. 自下而上分析的“下”指的是被分析的源程序串。

( T )23. 文法G若是LALR(1)文法,则文法G必定是LR(1)文法。

( T )24. 语法分析必须在语义分析之前完成。

( F )25. 文法若存在左递归,则在自上而下语法分析过程中会因为假匹配造成算法的回溯。

(T )26. 在C语言中有一个语句 int int1;词法分析后识别出int、int、1和;四个单词。

( F )27. 一个有限自动机识别的语言是一个无限集合,则该有限自动机的状态图一定含有回路。

( T )28. 正规文法、正规式、NFA和DFA在接受语言的能力上是相互等价的。

( T )28. 文法G的一个句子对应于多个推导,则G是二义的。

( T )30. 编译程序是应用软件。

( F )。

相关文档
最新文档