编译原理复习(有答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章引论

1.编译过程的阶段

由词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成六个阶段

2.编译程序的概念

3.编译程序的结构

例:(B)不是编译程序的组成部分。

A. 词法分析器;

B. 设备管理程序

C. 语法分析程序;

D. 代码生成程序

4.遍的概念

对源程序(或其中间形式)从头至尾扫描一次并进行有关加工处理,生成新的中间形式或最终目标程序,称为一遍。

5.编译程序与解释程序的区别

例:解释程序和编译程序是两类程序语言处理程序,它们的主要区别在于(D)。

A. 单用户与多用户的差别

B. 对用户程序的差错能力

C. 机器执行效率

D. 是否生成目标代码

第三章文法和语言

文法的概念

字母表、符号串和集合的概念及运算

例:(ab|b)*c 与下面的那些串匹配?(ACD)

A. ababbc;

B. abab;

C. c;

D. babc;

E. aaabc 例:ab*c*(a|b)c 与后面的那些串匹配?(BC)

A.acbbc

B.abbcac

C.abc

D.acc

例:(a|b)a+(ba)*与后面的那些串匹配? (ADE)A.ba B.bba C.ababa D.aa E.baa

文法的定义(四元组表示)

文法G定义为四元组(V N,V T,P,S)

V N:非终结符集

V T:终结符集

P:产生式(规则)集合

S:开始符号(或识别符号)

例:给定文法,A::= bA | cc,下面哪些符号串可由其推导出(①② ⑤)。

①cc ②b*cc ③b*cbcc ④bccbcc ⑤bbbcc

什么是推导

例:已知文法G:

E->E+T|E-T|T

T->T*F|T/F|F

F->(E)|i

试给出下述表达式的推导:i*i+i

推导过程:E->E+T

->T+T

->T*F+T

->F*F+T

->i*F+T

->i*i+T

->i*i+F

->i*i+i

●句型、句子的概念

例:假设G一个文法,S是文法的开始符

号,如果S=>*x,则称x是句型。

例:对于文法G,仅含终结符号的句型称

为句子。

●语言的形式定义

例:设r=(a|b|c)(x|y|z),则L(r)中元素为

9个。

例:文法G产生式为S→AB,A→aAb|ε,

B→cBd|cd,则B∈L(G)。

A. ababcd;

B. ccdd;

C. ab;

D. aabb

●等价文法

例:如果两个文法描述了同一个语言,则这两个文法是等价文法。

●文法的类型

0型:左边至少有一个非终结符

1型:右边长度>=左边长度

2型:左边有且仅有一个非终结符

3型:形如:A->aB,A->a

各类型文法都是逐级包含关系,

例:文法S→abC|c,bC→d是几型文法?0

例:文法S→abC,bC→ad是几型文法?1

例:文法G[A]:A→ε,A→aB,B→Ab,B→a

是几型文法?2型

例:文法S→a|bC,C→d是几型文法?

3

●最左(右)推导

规范推导:最右推导被称为规范推导

规范句型:由规范推导所得的句型称为规范句型规范归约:左归约为规范归约

●二义性

例:如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。

例:已知文法G1:P->PaP|PbP|cP|Pe|f,G1是(A)。 A 二义文法;B 无二义的

例:证明下述文法G[<表达式>]是二义的。

<表达式>→a|(<表达式>)|<表达式><运算符><表达式>

<运算符>→+|-|*|/

答:可为句子a+a*a构造两个不同的最右推导:

最右推导1 〈表达式〉

〈表达式〉〈运算符〉〈表达式〉

〈表达式〉〈运算符〉a

〈表达式〉* a

〈表达式〉〈运算符〉〈表达式〉* a

〈表达式〉〈运算符〉a * a

〈表达式〉+ a * a

a + a * a

最右推导2 〈表达式〉

〈表达式〉〈运算符〉〈表达式〉

〈表达式〉〈运算符〉〈表达式〉〈运算符〉〈表达式〉

〈表达式〉〈运算符〉〈表达式〉〈运算符〉 a

〈表达式〉〈运算符〉〈表达式〉* a

〈表达式〉〈运算符〉a * a

〈表达式〉+ a * a

a + a * a

●短语、句柄、直接短语

例:令文法G[E]为:

E->E+T|E-T

T->T*F|T/F|F

F->(E)|i

证明E+T*F是它的一个句型,指出这个句型的所有短语、直接短语和句柄。

例:已知文法G[S]

S→aB|bA

A→a|aS|bAA

B→aBB|bS|b

句型aabbAb的句柄是(D)

A.a

B.ab

C.b

D.bA

第四章词法分析

●词法输出的token表示法

●词法记号、模式、词法单元的概念

●词法输出的token表示:二元式表

示(单词种别,单词自身的值)

例:扫描器的任务是从源程序中识别出一个个单词。

●正规式的概念及其代数性质

词法分析中的单词符号的描述工具

正规式代表的集合

例:请描述下面正规式定义的串,字母表S = {0, 1}。1(0|1)*0

答:必须以1开头0结尾的串

例:为下边所描述的串写正规式,字母表是{0, 1}。以01 结尾的所有串

答:(0|1)*01

●正规文法和正规式相互转换

正规文法到正规式的转换规则:

正规文法正规式

A→xB, B→y 转换成:A=xy

A→xA∣y 转换成:A=x*y

A→x, A→y 转换成:A=x∣y

例:给出下述文法所对应的正规式:

S→0A|1B

A→1S|1

B→0S|0

答:S->0A | 1B

->01S | 01 | 10S | 10

->(01|10)S | (01|10)

-> (01|10) (01|10)* 即:r= (01|10) (01|10)*

●NFA和DFA

●NFA和DFA 的组成

例:指出哪些串是自动机可接受的(②④)xy ②xyxxy ③yyyx

相关文档
最新文档