期末复习总结《编译原理》
第一章:绪论
一、填空问题 
 ①由于计算机只能认识机器语言,所以需要翻译程序将高级语言翻译成计算机可以识 别的机器语言。 
②编译程序的工作过程一般主要划分为词法分析语法分析中间代码生成代码优化目标代码生成等几个基本阶段,同时还会伴有表格管理出错处理。 
③如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两个阶段:编译阶段运行阶段。如果编译程序生成的目标程序是汇编语言的程序,则源程序的执行分为三个阶段:编译阶段汇编阶段运行阶段
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 或者  e. a 或者 c      f. b 或者 c
1-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.用高级语言编写的程序经编译后产生的程序叫 .用不同语言编写的程序产生 a ,可用  g  连接在一起生成机器可执行的程序.在机器中真正执行的是  e .
a. 源程序          b. 目标程序  c. 函数        d. 过程 
e. 机器指令代码    f. 模块      g. 连接程序    h.程序库
1-16.要在某一台机器上为某种语言构造一个编译程序,必须掌握下述三方面的内容: c , ,  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.  有关    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. 不正确   b.正确
1-25.把汇编语言程序翻译成机器可执行的目标程序的工作是由  b  完成的.
a. 编译器    b. 汇编器   c. 解释器    d. 预处理器
1-26.编译程序生成的目标程序  b  是机器语言的程序.
a.  一定    b. 不一定
1-27.编译程序生成的目标程序  b  是可执行的程序.
a.  一定    b. 不一定
1-28.编译程序是一种
A. 汇编程序        B. 翻译程序      C. 解释程序        D. 目标程序
1-29.按逻辑上划分,编译程序第二步工作是  C 
A. 语义分析        B. 词法分析      C. 语法分析       D. 代码优化
1-30.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括
A.模拟执行器   B.解释器    C.表格处理和出错处理     D.符号执行器
1)把汇编语言程序翻译成机器可执行的目标程序的工作是由什么完成的?
解答: 由汇编器(汇编程序)完成的。
 19)编译程序是一种解释程序吗?还是什么程序?
解答:编译程序是一种翻译程序。
二、判断问题 
①高级语言程序必须经过编译程序的翻译才被计算机识别和执行。( 错 ) 
答:对高级语言的翻译,还有解释程序。 
②编译程序的输入是高级语言,输出是机器语言程序。(错) 
答:输出还有汇编语言程序。 
③具有优化功能的编译程序的工作效率高。(错) 
答:优化是编译程序的的一部分,优化的目的,是提高目标程序的质量和运行效率。 
④有的编译程序可以没有目标代码生成部分。(错) 
答:编译程序必须生成目标代码,所以目标代码生成部分是不可缺少的。
1-31.计算机高级语言翻译成低级语言只有解释一种方式。                      (×)
1-32.在编译中进行语法检查的目的是为了发现程序中所有错误。                (×)
第二章:词法分析
一、填空题 
1、编译过程中扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位—单词。 
2、高级程序设计语言的单词通常分为五类,它们是关键字、标识符、常数、运算符以及界限符。 
3、确定的有限自动机是一个五元组,通常表示为DFA M=(S, , ,S0,F)。 
4、词法分析的任务是输入源程序,输出单词符号。 
5、确定有限自动机DFA是NFA的一种特例。 
6、若二个正规式所表示的正规集相同,则认为二者是等价的。 
8-01.符号表中的信息栏中登记了每个名字的 属性和特征等有关信息 ,如类型、种属、所占单元大小、地址等等。
6-04.终结符只有 综合属性 它们由词法分析器提供。
二、判断题 
1、一些语言,它们能被确定的有限自动机识别,但不能用正规表达式表示。( 错 ) 答:用正规式表示的语言,都能被确定的有限自动机识别。
2、每一个NFA M都对应有唯一的一个最小化的DFA M。( 对 ) 
答:每一个NFA M都可以构造一个DFA M,而DFA M又可以构造一个最小化的DFA M。 
3、一个有限自动机,仅有一个唯一的终态。(错) 
答:有限自动机的终态可以有多个。 
4、确定的有限自动机以及不确定的有限自动机都能正确识别正规集。(对)