编译原理 编译程序概论
一. 单选题(共10题,20分)
1. (单选题, 2分)
编译过程中,语法分析器的任务不包括()
- A. 分析单词是怎样构成的
- B. 分析单词串是如何构成语句和说明的
- C. 分析语句和说明是如何构成程序的
- D. 分析程序的结构
我的答案: A:分析单词是怎样构成的;
2. (单选题, 2分)
编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过()这几步
a、编辑 b、编译 c、连接 d、运行
- A. abcd
- B. abc
- C. ac
- D. ad
我的答案: B:abc;
3. (单选题, 2分)解释方式和编译方式的主要区别在于
- A. 能否对源程序查错
- B. 能否生成目标代码
- C. 能否多用户运行
- D. 机器资源利用率高低
我的答案: B:能否生成目标代码;
4. (单选题, 2分)
()不是编译程序的组成部分
- A. 词法分析器程序
- B. 代码生成程序
- C. 设备管理程序
- D. 语法分析程序
我的答案: C:设备管理程序;
5. (单选题, 2分)若在C语言程序中出现“aa 11 bb=123;”,且不出现在引号和注释里,在编译时会()
- A. 词法分析时报错
- B. 语义分析时报错
- C. 生成中间代码时报错
- D. 语法分析时报错
我的答案: D:语法分析时报错;
6. (单选题, 2分)编译程序是对()
- A. 汇编程序的翻译
- B. 高级语言的解释执行
- C. 机器语言的执行
- D. 高级语言的翻译
我的答案: D:高级语言的翻译;
7. (单选题, 2分)编译程序是一种()软件
- A. 系统
- B. 应用
- C. MIS
- D. ERP
我的答案: A:系统;
8. (单选题, 2分)设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是()
- A. 词法分析
- B. 语法分析
- C. 语义分析
- D. 代码生成
我的答案: B:语法分析;
9. (单选题, 2分)
将编译程序分成若干个“遍”是为了( )
- A.
提高程序的执行效率
- B.
使程序的结构更加清晰
- C.
利用有限的机器内存并提高机器的执行效率
- D.
利用有限的机器内存但降低了机器的执行效率
我的答案: B:使程序的结构更加清晰 ;
10. (单选题, 2分)
构造编译程序应掌握( )
- A.
源程序
- B.
目标语言
- C.
编译方法
- D.
以上三项都是
我的答案: D:以上三项都是 ;
二. 填空题(共5题,25分)
11. (填空题, 5分)
编译程序的工作过程一般可以划分为( )、( )、( )、( )、( )
等几个基本阶段。
我的答案:
(1) 词法分析
(2) 语法分析
(3) 语义分析
(4) 中间代码生成
(5) 代码优化
12. (填空题, 5分)
对编译程序而言,输入数据是 ,输出结果是 。
我的答案:
(1) 源程序
(2) 目标程序
13. (填空题, 5分)
语法分析最常用的两类方法是 和 分析法。
我的答案:
(1) 自顶向下
(2) 自底向上
14. (填空题, 5分)
词法分析的任务是从源程序中识别出一个个 。
我的答案:
(1) 单词符号
15. (填空题, 5分)
产生式是用于定义 的一种书写规则。
我的答案:
(1) 语法成分
三. 判断题(共5题,15分)
16. (判断题, 3分)
有人说:“用高级语言编写的源程序必须通过编译,得到目标代码后才能投入运行”
- A. 对
- B. 错
我的答案: 错
17. (判断题, 3分)
计算机高级语言翻译成低级语言只有解释一种方式。 ( )
- A. 对
- B. 错
我的答案: 错
18. (判断题, 3分)
甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相 同。
- A. 对
- B. 错
我的答案: 错
19. (判断题, 3分)
“用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”说法。
- A. 对
- B. 错
我的答案: 错
20. (判断题, 3分)
对任何一个编译程序而言,中间代码阶段并不是必不可少的。
- A. 对
- B. 错
我的答案: 对
四. 简答题(共4题,40分)
21. (简答题, 10分)
什么是编译程序?工作过程分为哪几个阶段?
我的答案:
编译程序也叫编译系统,是把用高级语言编写的面向过程的源程序翻译成目标程序的语言处理程序。
编译程序的工作过程一般划分为五个阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。
词法分析:也就是从左到右一个一个的读入源程序,识别一个单词或符号,并进行归类。
语法分析: 在词法分析的基础上,将单词序列分解成各类语法短语,如“程序”,“语句”,“表达式”等。
语义分析:审查源程序是否有语义的错误,当不符合语言规范的时候,程序就会报错。中间代码生成:在进行了语法和语义的分析工作之后,编译程序将源程序变成了一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。
代码优化:这个阶段是对前阶段的中间代码进行变换或改造,目的是使生成的目标代码更为高效,即节省时间和空间。
目标代码生成:也就是把优化后的中间代码变换成指令代码或汇编代码。
22. (简答题, 10分)
许多编译程序在真正编译之前都要进行预处理操作,请问预处理的目的是什么?预处理主要做哪些工作?
我的答案:
目的:在源程序中有时存在多个连续的空格、回车、换行及注释等编辑性字符,它们不是程序的必要组成部分,它们的意义只是改善程序的易读性和易理解性。为了降低编译程序的处理负担,许多编译程序在编译之前通过预处理工作将这些部分删除。
预处理的主要工作:是对源程序进行格式方面的规范化处理,如去掉注释、将回车换行变成空格、将多个空格替换为一个空格等
23. (简答题, 10分)
简述高级语言源程序的两种翻译方式的特点。
我的答案:
解释方式:就是由计算机专业人员事先编好一个解释程序构成一个解释系统存放到计算机内,当把高级语言程序输入到计算机内并运行程序之后,解释系统就会对它进行解释,解释一句执行一句。也就是说,边解释边执行。这与日常生活中的口译类似。
编译方式:就是由计算机专业人员事先编好一个编译程序构成一个编译系统存放到计算机内,当把高级语言程序输入到计算机内并运行程序之后,编译系统就把它整个翻译为目标代码程序,然后执行目标代码程序。这与日常生活中的笔译类似
24. (简答题, 10分)
编译技术的主要应用有哪些?(从实际应用来回答)
我的答案:
人工智能领域中的自然语言处理、机器翻译技术、高级程序设计语言的实现
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
