(完整版)编译技术复习题答案

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

第一章:编译系统概述

一.单选题

1.编译程序前三个阶段完成的工作是( C )。

A.词法分析、语法分析和代码优化

B.代码生成、代码优化和词法分析

C.词法分析、语法分析、语义分析和中间代码生成

D.词法分析、语法分析和代码优化

2.编译程序绝大多数时间花在(D )上。

A.出错处理B.词法分析C.目标代码生成D.表格管理

3.编译程序是对(C )。

A.汇编程序的翻译B.高级语言程序的解释执行

C.高级语言的翻译D.机器语言的执行

4.在使用高级语言编程时,首先可通过编译程序发现源程序的全部( A )错误。

A.语法B.语义C.语用D.运行

二.填空题

1.编译程序首先要识别出源程序中每个( 单词),然后再分析每个( 句子)并翻译其意义。

2.通常把编译过程分为分析前端与后端两大阶段。词法、语法和语义分析是对源程序的( 分析),中间代码生成、代码优化与目标代码的生成则是对源程序的(综合)。

3.对编译程序而言,输入数据是( 源程序),输出结果是( 目标程序)。

4.对下列错误信息,请指出可能是编译的哪个阶段(词法分析、语法分析、语义分析、

代码生成)报告的。

(1)else 没有匹配的if (语法分析)

(2)数组下标越界(语义分析)

(3)使用的函数没有定义(语法分析)

(4)在数中出现非数字字符(词法分析)

5.如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段:(编译阶段)和(运行阶段)。如果编译程序生成的目标程序是汇编语言程序,则源程序的执行方式分成三个阶段:(编译阶段)(汇编阶段)和(运行阶段)。6.编译程序在其工作过程使用最多的数据结构是(表),它记录着源程序中各种信息,以便查询或修改,在这些(表)中,尤以(符号表)最重要,它的生存期最长,使用也最频繁。

三.简述题:

1.编译程序的工作分为那几个阶段?

答:词法分析、语法分析和语义分析是对源程序进行的分析(称为编译程序的前端),

而中间代码生成、代码优化和代码生成三个阶段合称为对源程序进行综合(称为编译程序的后端),它们从源程序的中间表示建立起和源程序等价的目标程序。

第二章词法分析

一.单选题:

1.语言是(A )。

A.句子的集合B.产生式的集合C.符号串的集合D.句型的集合

2.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即(B )。

A.字符B.单词C.句子D.句型

3.词法分析的任务是(A )。

A.识别单词B.分析句子的含义C.识别句子D.生成目标代码4.DFA(如图所示)接受的字集为(D )。

A.以0 开头的二进制数组成的集合B.以0 结尾的二进制组成的集合

C.含奇数个0 的二进制组成的集合D.含偶数个0 的二进制组成的集合

5.词法分析器的输出结果是(C )。

A.单词的种别编码B.单词在符号表中的位置

C.单词的种别编码和自身的值D.单词自身值

二.填空题:

1.描述程序设计语言的词法的机制是(正则表达式),识别机制是(有穷状态自动机)。

2.最小状态DFA 的含义是(没有多余状态,没有两个状态等价)。

3.确定有限自动机DFA 是(NFA )的一个特例。

4.确定的有穷自动机是一个(五元组),通常表示为(DFA = ( S,∑,f , s0Z ))。

三、简述题:

1.词法分析

答:词法分析的主要任务是从左向右扫描每行源程序的符号,按照词法规则从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位,并转换成统一的内部表示(token),送给语法分析程序。

四.综合应用题:

1.设有非确定的有自限动机NFA M=({A,B,C},{0,1},δ,{A},{C}),其中:δ (A,0)={C} δ (A,1)={A,B} δ (B,1)={C} δ (C,1)={C}。请画出状态转换距阵和状态转换图。

解:

状态转换距阵为:

a

3 b

a 1

b

a

X Y

a b

2

b

A C A ,

B B ∅

C C

C

状态转换图为:

1

1

2. 有一台自动售货机,接收 1 分和 2 分硬币,出售 3 分钱一块的硬糖。顾客每次向机器中

投放 ≥3 分的硬币,便可得到一块糖(注意;只给一块并且不找钱)。

(1) 写出售货机售糖的正则表达式; (2) 构造识别上述正则式的最简 DFA 。

解:(1)设 a = 1, b = 2,,则售货机售糖的正则表达式为:a (b | a (a | b)) | b (a | b) 。

(2)画出与正则表达式 a (b | a (a | b)) | b (a | b)对应的 NFA ,如图所示:

3. 设∑={0,1}上的正规集 S 由倒数第二个字符为 1 的所有字符串组成,请给出该字集对应的正规式,并构造一个识别该正规集的 DFA 。 解:构造相应的正规式:(0|1)*1(0|1) NFA:

1 1

确定化:(3 分)

I I 0

I 1

{0,1,2}

{1,2}

{1,2,3}

ε ε 0

ε 1

ε

1

2 3

4

1

A

B

1

C

1 0

相关文档
最新文档