编译原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)读入一个符号可确定下一步推导

相关文档
最新文档