编译原理 第一章复习题 概述
第一章复习题
单选
-
编译过程中,语法分析器的任务不包括(A)。
A. 分析单词是怎样构成的
B. 分析单词串是如何构成语句和说明的
C 分析语句和说明是如何构成程序的
D 分析程序的结构 -
编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过(B)这几步。
a、编辑 b、编译 c、连接 d、运行
A abcd
B abc
C ac
D ad -
解释方式和编译方式的主要区别在于(B)。
A 能否对源程序查错
B 能否生成目标代码
C 能否多用户运行
D 机器资源利用率高低 -
若在Pascal语言源程序中出现“&#&”,且不出现在引号和注释里,在编译时会(C)。
A 不报错
B 语法分析时报错
C 词法分析时报错
D 代码生成时报错 -
若在C语言程序中出现“aa 11 bb=123;”,且不出现在引号和注释里,在编译时会(D)。
A 词法分析时报错
B 语义分析时报错
C 生成中间代码时报错
D 语法分析时报错 -
面向机器的语言指的是(B)。
A 用于解决机器硬件设计问题的语言
B 特定计算机系统所固有的语言
C 各种计算机系统都通用的语言
D 只能在一台计算机上使用的语言 -
面向机器语言的特点是(D)。
A 程序的执行效率低,编制效率低,可读性差
B 程序的执行效率高,编制效率高,可读性强
C 程序的执行效率低,编制效率高,可读性强
D 程序的执行效率高,编制效率低,可读性差 -
编译程序是对(D)。
A 汇编程序的翻译
B 高级语言的解释执行
C 机器语言的执行
D 高级语言的翻译 -
编译程序是一种(A)软件。
A 系统
B 应用
C MIS
D ERP -
(C)不是编译程序的组成部分。
A 词法分析器程序
B 代码生成程序
C 设备管理程序
D 语法分析程序 -
设有表达式a* b-c,将其中a*b识别为表达式的编译阶段是(B)
A 词法分析
B 语法分析
C 语义分析
D 代码生成
多选
-
编译原理各阶段的工作都涉及到(AC)
A 表格管理
B 语法分析
C 出错处理
D 代码优化 -
程序语言一般分为(A)和(C)
A 高级语言
B 专用程序语言
C 低级语言
D 通用程序语言 -
高级语言的翻译方式有(C)和(D)
A 汇编方式
B 模拟方式
C 解释方式
D 编译方式
判断
- 有人说:“用高级语言编写的源程序必须通过编译,得到目标代码后才能投入运行”。错误
简答
1.何谓源程序、目标程序、翻译程序、编译程序和解释程序?他们之间有什么关系?
- 源程序:用源语言编写的程序
- 目标程序:源程序经翻译程序加工处理过后生成的程序。
- 翻译程序:将源程序转换为与其逻辑上等价的目标程序。
- 汇编程序:源语言为汇编语言,目标语言为机器语言的翻译程序。
- 编译程序:高级语言翻译成汇编语言或机器语言的翻译程序,属于翻译程序的一种。
①先翻译后执行 ②执行速度快 ③多次运算 - 解释程序:源语言程序作为输入,但不产生目标程序,而是边解释变只想源程序。
①边解释变执行 ②有利于程序的调试 ③1次运算
编译程序总框
2.一个典型的编译系统通常由哪些部分组成?各部分的主要功能是什么?
各部分主要功能:
-
词法分析(Lexical Analysis)
从左到右挨个读入源程序的字符,对构成源程序的字符串进行扫描和分解,从而识别出一个个单词(也称单词符号或符号)。 -
语法分析(Syntax Analysis)
在词法分析的基础上将单词序列分解成各类语法短语,如“程序”,“语句”,“表达式”等。 -
语义分析(Syntactic Analysis)
语义分析实在语法分析程序确定出语法短语后,审查有无予以错误,并为代码生成阶段收集类型信息。 -
中间代码生成(Generation of intermediate code)
完成语法分析和语义处理工作后,编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或称中间代码,它是一种结构简单、含义明确的记号系统。 -
代码优化(Optimization of code)
为了使生成的目标代码更为高效,可以对产生的中间代码进行变换或进行改造,这就是代码的优化。 -
代码生成(Generation of code)
目标代码生成是编译器的最后一个阶段。在生成目标代码时要考虑以下几个问题:计算机的系统结构、指令系统、寄存器的分配以及内存的组织等。