编译原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《编译原理》复习题
题型:选择题简述题计算题综合(证明)题
第一章引论
1、运行编译程序的计算机称为?而运行目标程序的计算机称为?
宿主机;目标机
2、何谓编译程序?编译程序的输入是?输出是?编译程序:把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序;
输入:源程序;
输出:目标程序;
3、请说明编译程序的逻辑结构。即,画出其逻辑结构图。
4、编译程序的“前端”主要由与源语言有关但与(目标机器)无关的哪些部分组成?
编译前端:与源语言有关,如词法分析,语法分析,语义分析与中间代码产生,与机器无关的优化
5、编译程序的“后端”主要由与(源语言)无关但与(目标机器)相关的哪些部分组成?
编译后端:与目标机有关,与目标机有关的优化,目标代码产生
6、要在某种机器上为某程序语言构造编译程序,必须掌握那几方面的内容?
构造编译程序的前提:
1掌握源语言;2掌握目标语言;3掌握编译方法
7、编译程序的生成方法有哪些?
方法:1高级语言书写;2移植方法;3自编译方式
第二章 高级语言及语法描述
1、简述语言的定义,并写出文法G 定义的语言的集合表示。
语言由语法跟语义(语用)定义;
},|{)(*
T
V S G L ∈⇒=+ααα 2、给定文法G ,如何写出由G 生成的语言的集合表示?
(1、2题结合看,并看不懂他问什么ORZ )
3、语法规则用来描述什么?(语言的形式结构)
语法规则定义了程序的形式结构
4、程序设计语言的语法规则描述方法是什么?
语法规则描述方法:上下文无关文法
5、上下文无关文法由哪几部分组成?其中的终结符号集合、非终结符号集合如何规定?
6、怎样进行句子(句型)的最左推导?最右推导?
7、以形式语言的文法规则手段,描述指定语言方法这不是一个祈使句吗,问题在哪
(╯‵□′)╯︵┻━┻
8、怎样画出给定句子(句型)的语法分析树?
语法树的根结由开始符号所标记。随着推导的展开,当某个非终结符被它的某个候选式所替换时,这个非终结符的相应结就产生出下一代新结,候选式中自左至右的每个符号对应一个新结,并用这些符号标记其相应的新结。每个新结和其父结间都有一条连线。在一棵语法树生长过程中的任何时刻,所有那些没有后代的端末结自左至右排列起来就是一个句型。
9、简述二义文法的定义。
定义:如果一个文法存在某个句子对应两颗不同的语法树,则说这个文法是二义的。
10、乔姆斯基将形式语言文法分为哪几种类?在程序设计语言中有何应用?
0型(短语文法,图灵机);
1型(上下文有关文法,线性界限自动机);2型(上下文无关文法,非确定下推自动机);3型(正规文法,有限自动机)。
应用:可以用来描述现今多数程序设计语言的语法结构;
第三章词法分析
1、简述词法分析器的功能,说明词法分析阶段的基
本任务是什么。输入输出是什么?
功能:输入源程序、输出单词符号;
任务:从左至右逐个字符的对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。
2、在词法分析器设计中,为能正确识别单词“种别”而采用的一个技术叫做什么技术?
超前搜索技术
3、PL/0词法分析器中采取什么手段方法来识别保留字(关键字)?
当识别到字母开头的字母数字串时,先查关键字表。若查不到则为标识符,查到则为关键字。
4、通常,设计词法分析器的一种途径(工具)是什么?这个工具可以用来做什么?
状态转换图;
状态转换图可用于识别(或接受)一定的字符串。5、词法分析器依据什么对源程序字符流进行分析?它的输出是什么?
依据:符号表;
输出:单词符号
6、在词法分析器中,预处理程序的基本功能是什么?
预处理子程序:剔除无用的空白、跳格、回车和换行等编辑性字符;区分标号区、接续行和给出句末符等7、程序设计语言的词法规则常用什么文法描述?
8、正规式可以用来做什么?如何求出正规式对应的正规集?
正规式用来表示正规集;
转换:
9、自动机理论在词法分析的器构造中有何应用意义?
自动机理论中一个重要的结论:判定两个自动机等价性的算法是存在的。
第四-五章语法分析
1、语法分析的任务是什么?简述语法分析器的功能。语法分析的任务是分析一个文法的句子结构。
语法分析器的功能:按照文法的产生式(语言的语法规则),识别输入符号串是否为一个句子(合式程序)。
2、从形式语言的应用来说,程序语言的语法规则通常用什么文法描述?
用上下文无关文法描述语法规则
3、语法分析方法分为哪两大类方法?这种分类的依据是什么?
自下而上分析法(Bottom-up)与自上而下分析法(Top-down);
依据:语言分析树的建立方法。
4、在语法分析的两大类分析方法中,递归下降分析法属于哪类分析方法? LR分析法属于哪类分析方法?递归下降分析法属于自上而下分析方法;LR分析法属于自下而上分析方法
5、语法分析方法分为自顶向下和自下而上两大类分析方法,你了解有哪些语法分析方法?
自上而下:LL(1)分析法、递归下降分析法
自下而上:算符优先分析法、LR分析法
6、已知文法G(S),如何指出它的句子(句型)的短语、直接短语和句柄?
7、语法分析过程中的“符号”对程序语言来说指的是什么?
8、如果采用自下而上分析方法,语法分析过程的实质是什么?逻辑输出是什么?
实质:移进-归约;
逻辑输出:开始符号S
9、如何判定给定文法是LL(1)文法?G(S)是LL(1)文法的充要条件是什么?
判定:
1)从左向右扫描输入符号串
2)第二个 L 表示生成最左推导
3)读入一个符号可确定下一步推导