编译原理 :编译程序概论

目录

一. 单选题

二. 填空题

三. 判断题

四. 简答题

21. 什么是编译程序?工作过程分为哪几个阶段?

22. 许多编译程序在真正编译之前都要进行预处理操作,请问预处理的目的是什么?预处理主要做哪些工作?

23.简述高级语言源程序的两种翻译方式的特点。

24. 编译技术的主要应用有哪些?(从实际应用来回答)


一. 单选题

1. 编译过程中,语法分析器的任务不包括()

  • A. 分析单词是怎样构成的
  • B. 分析单词串是如何构成语句和说明的
  • C. 分析语句和说明是如何构成程序的
  • D. 分析程序的结构 

2. 编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过()这几步

a、编辑     b、编译     c、连接     d、运行

  • A. abcd
  • B. abc
  • C. ac
  • D. ad

3. 解释方式和编译方式的主要区别在于

  • A. 能否对源程序查错
  • B. 能否生成目标代码
  • C. 能否多用户运行
  • D. 机器资源利用率高低

4. ()不是编译程序的组成部分

  • A. 词法分析器程序
  • B. 代码生成程序
  • C. 设备管理程序
  • D. 语法分析程序

5. 若在C语言程序中出现“aa 11 bb=123;”,且不出现在引号和注释里,在编译时会()

  • A. 词法分析时报错
  • B. 语义分析时报错
  • C. 生成中间代码时报错
  • D. 语法分析时报错

6. 编译程序是对()

  • A. 汇编程序的翻译
  • B. 高级语言的解释执行
  • C. 机器语言的执行
  • D. 高级语言的翻译

7. 编译程序是一种()软件

  • A. 系统
  • B. 应用
  • C. MIS
  • D. ERP

8. 设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是()

  • A. 词法分析
  • B. 语法分析
  • C. 语义分析
  • D. 代码生成

9. 将编译程序分成若干个“遍”是为了(   )

  • A.提高程序的执行效率

  • B.使程序的结构更加清晰

  • C.利用有限的机器内存并提高机器的执行效率

  • D.利用有限的机器内存但降低了机器的执行效率

10. 构造编译程序应掌握(   )

  • A.源程序

  • B.目标语言

  • C.编译方法

  • D:以上三项都是 ;

二. 填空题

11. 编译程序的工作过程一般可以划分为(          )、(          )、(           )、(           )、(          )等几个基本阶段。

词法分析   语法分析 语义分析   中间代码生成    代码优化

12. 对编译程序而言,输入数据是  源程序        ,输出结果是  目标程序      。

13. 语法分析最常用的两类方法是    自顶向下     和      自底向上      分析法。

14. 词法分析的任务是从源程序中识别出一个个        单词符号

15.产生式是用于定义       语法成分         的一种书写规则。

三. 判断题

16. 有人说:“用高级语言编写的源程序必须通过编译,得到目标代码后才能投入运行”

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

18. 甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。 错

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

20. 对任何一个编译程序而言,中间代码阶段并不是必不可少的。

四. 简答题

21. 什么是编译程序?工作过程分为哪几个阶段?

编译程序也叫编译系统,是把用高级语言编写的面向过程的源程序翻译成目标程序的语言处理程序。

        编译程序的工作过程一般划分为五个阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。

        词法分析:也就是从左到右一个一个的读入源程序,识别一个单词或符号,并进行归类。

        语法分析: 在词法分析的基础上,将单词序列分解成各类语法短语,如“程序”,“语句”,“表达式”等。

        语义分析:审查源程序是否有语义的错误,当不符合语言规范的时候,程序就会报错。中间代码生成:在进行了语法和语义的分析工作之后,编译程序将源程序变成了一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。

        代码优化:这个阶段是对前阶段的中间代码进行变换或改造,目的是使生成的目标代码更为高效,即节省时间和空间。

        目标代码生成:也就是把优化后的中间代码变换成指令代码或汇编代码。

22. 许多编译程序在真正编译之前都要进行预处理操作,请问预处理的目的是什么?预处理主要做哪些工作?

目的:在源程序中有时存在多个连续的空格、回车、换行及注释等编辑性字符,它们不是程序的必要组成部分,它们的意义只是改善程序的易读性和易理解性。为了降低编译程序的处理负担,许多编译程序在编译之前通过预处理工作将这些部分删除。

预处理的主要工作:是对源程序进行格式方面的规范化处理,如去掉注释、将回车换行变成空格、将多个空格替换为一个空格等

23.简述高级语言源程序的两种翻译方式的特点。

解释方式:就是由计算机专业人员事先编好一个解释程序构成一个解释系统存放到计算机内,当把高级语言程序输入到计算机内并运行程序之后,解释系统就会对它进行解释,解释一句执行一句。也就是说,边解释边执行。这与日常生活中的口译类似。

编译方式:就是由计算机专业人员事先编好一个编译程序构成一个编译系统存放到计算机内,当把高级语言程序输入到计算机内并运行程序之后,编译系统就把它整个翻译为目标代码程序,然后执行目标代码程序。这与日常生活中的笔译类似

24. 编译技术的主要应用有哪些?(从实际应用来回答)

人工智能领域中的自然语言处理、机器翻译技术、高级程序设计语言的实现

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值