编译技术考试试题及答案.docx

上传人:b****9 文档编号:25433971 上传时间:2023-06-08 格式:DOCX 页数:20 大小:27.72KB
下载 相关 举报
编译技术考试试题及答案.docx_第1页
第1页 / 共20页
编译技术考试试题及答案.docx_第2页
第2页 / 共20页
编译技术考试试题及答案.docx_第3页
第3页 / 共20页
编译技术考试试题及答案.docx_第4页
第4页 / 共20页
编译技术考试试题及答案.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

编译技术考试试题及答案.docx

《编译技术考试试题及答案.docx》由会员分享,可在线阅读,更多相关《编译技术考试试题及答案.docx(20页珍藏版)》请在冰豆网上搜索。

编译技术考试试题及答案.docx

编译技术考试试题及答案

编译技术考试试题及答案

一、       填空题(每空1分,共20分)

1.编译过程一般分为              、              、中间代码生成、              

和目标代码生成五个阶段。

2.语法分析最常用的两类方法是               和                分析法。

3.确定的有穷自动机是一个       ,通常表示为                          。

4.所谓最右推导是指                                                  。

5.语法分析器的任务是                                                。

6.如果一个文法的任何产生式的右部都不含有   的非终结符,则这种文法称为     文法。

7.进行确定的自上而下语法分析要求语言的文法是无              和              的。

8.LR分析法是一种                                    的语法分析方法。

9.根据优化对象所涉及的程序范围,代码优化分为             、             和            等。

10.常用的优化技术包括:

             、              、强度削弱、复写传播、           等。

二、       是非题(下列各题,你认为正确的,请在题后的括号内打“√”,错的打“×”。

每题2分,共20分)

1.正规文法产生的语言都可以用上下文无关文法来描述。

  ……………………  (      )

2.仅考虑一个基本块,不能确定一个赋值是否真是无用的。

………………………(   )

3.如果一个文法是递归的,则其产生的语言的句子是无穷个。

 …………………(   )

4.四元式之间的联系是通过符号表实现的。

…………………………………………(   )

5.文法的二义性和语言的二义性是两个不同的概念。

  …………………………(   )

6.一个LL(l)文法一定是无二义的。

……………………………………………… (       )

7.在规范规约中用最左素短语来刻划可归约串。

………………… ……………  (      )

8.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。

……………  (      )

9.编译程序是对汇编程序的翻译。

           ……………………………………(   )

10.逆波兰法表示的表达式亦称前缀式。

 …………………………………………… (      )

三、       简答题(每题5分,共15分)

1、简述栈式存储管理策略;  2、何谓DAG;  3、何谓文法的二义性;

四、       给出下述文法对应的正规式  (7分)

 S→0A|1B

A→1S|1

B→0S|0

五、          已知文法G(E):

E→T|E+T|E-T

T→F|T*F|T/F

F→(E)|i

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

(8分)

六、       设有文法G[S]:

S→aBc|bAB

A→aAb|b

B→b|ε

构造其LL

(1)分析表,并分析符号串baabbb是否是该文法的句子.  (10分)

七、       设有文法G[E]:

E→(E)|ε

试判断该文法是否为SLR

(1)文法,若不是,请说明理由;若是请构造SLR

(1)分析表。

(10分)

八、       假设可用寄存器为R0和R1,试写出下列四元式序列对应的目标代码。

(10分)

T1=B-C

T2=A*T1

  T3=D+1

  T4=E-F

  T5=T3*T4

          参考答案

 一、填空题(1X20=20分)

1.           词法分析、语法分析、代码优化

2.           自上而下、自下而上

3.           五元组、DFA=(K,∑,M,S,Z)

4.           任何一步

都是对

中最右非终结符进行替换

5.           分析一个文法的句子结构

6.           相邻、算符

7.           左递归、公共左因子

8.           自下而上

9.           局部优化、循环优化、局部优化

10.      删除公共子表达式、代码外提、变换循环控制条件、合并已知量、删除无用赋值(任选3个)

  二、是非题(2X10=20分)

 1、×   2、√  3、√  4、×  5、√  6、√  7、×  8、√  9、×  10、×

 三、简答题(见书中相应部分)(5X3=15分)

 四、解:

首先得正规式方程组:

               S=0A+1B

               A=1S+1

               B=0S+0

      求解该方程组得:

S=(01|10)(01|10)*    (8分)

五、解  

  (2分)

         

是文法G[S]的句型。

         短语:

E+T*F, T*F (2分)

         直接短语:

T*F     (2分)

         句柄:

T*F         (2分)

六、解:

、因为FOLLOW(B)=FIRST(c)∪FOLLOW(S)={c,#}(2分),所以构造文法G[S]的LL

(1)分析表(5)如下:

a

B

c

#

S

aBc

bAB

A

aAb

b

B

b

ε

ε

符号串baabbb是该文法的句子(3分)(分析过程略)。

七  

  (2分)

     所以该文法为SLR

(1)文法。

其分析表如下:

(8分)

状态

ACTION

GOTO

#

E

0

S2

r2

r2

1

1

acc

2

S2

r2

r2

3

3

S4

4

r1

r1

八、       目标代码为:

 (10分)

           LD R0,B

           SUBR0,C

           LD R1,A

           MULR1,R0

           LD R0,D

           ADDR0,1

           ST R1,M

           LD R1,E

           SUBR0,F

           MULR0,R1

          LD R1,M

          DIVR1,R0

          ST R1,W

习题一、单项选择题

1、将编译程序分成若干个“遍”是为了。

a.提高程序的执行效率

b.使程序的结构更加清晰

c.利用有限的机器内存并提高机器的执行效率

d.利用有限的机器内存但降低了机器的执行效率

2、构造编译程序应掌握。

a.源程序b.目标语言

c.编译方法d.以上三项都是

3、变量应当。

a.持有左值b.持有右值

c.既持有左值又持有右值d.既不持有左值也不持有右值

4、编译程序绝大多数时间花在上。

a.出错处理b.词法分析

c.目标代码生成d.管理表格

5、不可能是目标代码。

a.汇编指令代码b.可重定位指令代码

c.绝对指令代码d.中间代码

6、使用可以定义一个程序的意义。

a.语义规则b.词法规则

c.产生规则d.词法规则

7、词法分析器的输入是。

a.单词符号串b.源程序

c.语法单位d.目标程序

8、中间代码生成时所遵循的是-。

a.语法规则b.词法规则

c.语义规则d.等价变换规则

9、编译程序是对。

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

c.机器语言的执行d.高级语言的翻译

10、语法分析应遵循。

a.语义规则b.语法规则

c.构词规则d.等价变换规则

解答

1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。

2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。

3、对编译而言,变量既持有左值又持有右值,故选c。

4、编译程序打交道最多的就是各种表格,因此选d。

5、目标代码包括汇编指令代码、可重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。

6、词法分析遵循的是构词规则,语法分析遵循的是语法规则,中间代码生成遵循的是语义规则,并且语义规则可以定义一个程序的意义。

因此选a。

7、b8、c9、d10、c

二、多项选择题

1、编译程序各阶段的工作都涉及到。

a.语法分析b.表格管理c.出错处理

d.语义分析e.词法分析

2、编译程序工作时,通常有阶段。

a.词法分析b.语法分析c.中间代码生成

d.语义检查e.目标代码生成

解答

1.b、c2.a、b、c、e

三、填空题

1、解释程序和编译程序的区别在于。

2、编译过程通常可分为5个阶段,分别是、语法分析、代码优化和目标代码生成。

3、编译程序工作过程中,第一段输入是,最后阶段的输出为程序。

4、编译程序是指将程序翻译成程序的程序。

解答

是否生成目标程序2、词法分析中间代码生成3、源程序目标代码生成4、源程序目标语言

一、单项选择题

1、文法G:

S→xSx|y所识别的语言是。

a.xyxb.(xyx)*c.xnyxn(n≥0)d.x*yx*

2、文法G描述的语言L(G)是指。

a.L(G)={α|S+⇒α,α∈VT*}b.L(G)={α|S*⇒α,α∈VT*}

c.L(G)={α|S*⇒α,α∈(VT∪VN*)}d.L(G)={α|S+⇒α,α∈(VT∪VN*)}

3、有限状态自动机能识别。

a.上下文无关文法b.上下文有关文法

c.正规文法d.短语文法

4、设G为算符优先文法,G的任意终结符对a、b有以下关系成立。

a.若f(a)>g(b),则a>bb.若f(a)

c.a~b都不一定成立d.a~b一定成立

5、如果文法G是无二义的,则它的任何句子α。

a.最左推导和最右推导对应的语法树必定相同

b.最左推导和最右推导对应的语法树可能不同

c.最左推导和最右推导必定相同

d.可能存在两个不同的最左推导,但它们对应的语法树相同

6、由文法的开始符经0步或多步推导产生的文法符号序列是。

a.短语b.句柄c.句型d.句子

7、文法G:

E→E+T|T

T→T*P|P

P→(E)|I

则句型P+T+i的句柄和最左素短语为。

a.P+T和ib.P和P+Tc.i和P+T+id.P和T

8、设文法为:

S→SA|A

A→a|b

则对句子aba,下面是规范推导。

a.SÞSAÞSAAÞAAAÞaAAÞabAÞaba

b.SÞSAÞSAAÞAAAÞAAaÞAbaÞaba

c.SÞSAÞSAAÞSAaÞSbaÞAbaÞaba

d.SÞSAÞSaÞSAaÞSbaÞAbaÞaba

9、文法G:

S→b|∧(T)

T→T,S|S

则FIRSTVT(T)。

a.{b,∧,(}b.{b,∧,)}c.{b,∧,(,,}d.{b,∧,),,}

10、产生正规语言的文法为。

a.0型b.1型c.2型d.3型

11、采用自上而下分析,必须。

a.消除左递归b.消除右递归c.消除回溯d.提取公共左因子

12、在规范归约中,用来刻画可归约串。

a.直接短语b.句柄c.最左素短语d.素短语

13、有文法G:

E→E*T|T

T→T+i|i

句子1+2*8+6按该文法G归约,其值为。

a.23B.42c.30d.17

14、规范归约指。

a.最左推导的逆过程b.最右推导的逆过程

c.规范推导d.最左归约的逆过程

[解答]

1、选c。

2、选a。

3、选c。

4、虽然a与b没有优先关系,但构造优先函数后,a与b就一定存在优先关系了。

所以,由f(a)>g)(b)或f(a)

故选c。

5、如果文法G无二义性,则最左推导是先生长右边的枝叶:

对于d,如果有两个不同的是了左推导,则必然有二义性。

故选a。

6、选c。

7、由图2-8-1的语法树和优先关系可以看出应选b。

8、规范推导是最左推导,故选d。

9、由T→T,…和T→(…得FIRSTVT(T))={(,,)};

由T→S得FIRSTVT(S)⊂FIRSTVT(T),而FIRSTVT(S)={b,∧,(};即

FIRSTVT(T)={b,∧,(,,};因此选c。

10、d11、c12、b13、b14、b

二、多项选择题

1、下面哪些说法是错误的。

a.有向图是一个状态转换图b.状态转换图是一个有向图

c.有向图是一个DFAd.DFA可以用状态转换图表示

2、对无二义性文法来说,一棵语法树往往代表了。

a.多种推导过程b.多种最左推导过程c.一种最左推导过程

d.仅一种推导过程e.一种最左推导过程

3、如果文法G存在一个句子,满足下列条件之一时,则称该文法是二义文法。

a.该句子的最左推导与最右推导相同

b.该句子有两个不同的最左推导

c.该句子有两棵不同的最右推导

d.该句子有两棵不同的语法树

e.该句子的语法树只有一个

4、有一文法G:

S→AB

A→aAb|ε

B→cBd|ε

它不产生下面集合。

a.{anbmcndm|n,m≥0}b.{anbncmdm|n,m>0}

c.{anbmcmdn|n,m≥0}d.{anbncmdm|n,m≥0}

e.{anbncndn|n≥0}

5、自下而上的语法分析中,应从开始分析。

a.句型b.句子c.以单词为单位的程序

d.文法的开始符e.句柄

6、对正规文法描述的语言,以下有能力描述它。

a.0型文法b.1型文法c.上下文无关文法d.右线性文法e.左线性文法

解答1、e、a、c2、a、c、e3、b、c、d4、a、c5、b、c6、a、b、c、d、e

三、填空题

1、文法中的终结符和非终结符的交集是。

词法分析器交给语法分析器的文法符号一定是,它一定只出现在产生式的部。

2、最左推导是指每次都对句型中的非终结符进行扩展。

3、在语法分析中,最常见的两种方法一定是分析法,另一是分析法。

4、采用语法分析时,必须消除文法的左递归。

5、树代表推导过程,树代表归约过程。

6、自下而上分析法采用、归约、错误处理、等四种操作。

7、Chomsky把文法分为种类型,编译器构造中采用和文法,它们分别产生和语言,并分别用和自动机识别所产生的语言。

解答1、空集终结符右

2、最左

3、自上而上自下而上

4、自上而上

5、语法分析

6、移进接受

7、42型3型上下文无关语言正规语言下推自动机有限

四、判断题

1、文法S→aS|bR|ε描述的语言是(a|bc)*()

R→cS

2、在自下而上的语法分析中,语法树与分析树一定相同。

()

3、二义文法不是上下文无关文法。

()

4、语法分析时必须先消除文法中的左递归。

()

5、规范归约和规范推导是互逆的两个过程。

()

6、一个文法所有句型的集合形成该文法所能接受的语言。

()

解答1、对2、错3、错4、错5、错6、错

五、简答题

1、句柄2、素短语3、语法树4、归约5、推导

[解答]

1、句柄:

一个句型的最左直接短语称为该句型的句柄。

2、素短语:

至少含有一个终结符的素短语,并且除它自身之外不再含任何更小的素短语。

3、语法树:

满足下面4个条件的树称之为文法G[S]的一棵语法树。

①每一终结均有一标记,此标记为VN∪VT中的一个符号;

②树的根结点以文法G[S]的开始符S标记;

③若一结点至少有一个直接后继,则此结点上的标记为VN中的一个符号;

④若一个以A为标记的结点有K个直接后继,且按从左至右的顺序,这些结点的标记分别为X1,X2,…,XK,则A→X1,X2,…,XK,必然是G的一个产生式。

4、归约:

我们称αγβ直接归约出αAβ,仅当A→γ是一个产生式,且α、β∈(VN∪VT)*。

归约过程就是从输入串开始,反复用产生式右部的符号替换成产生式左部符号,直至文法开始符。

5、推导:

我们称αAβ直接推出αγβ,即αAβÞαγβ,仅当A→γ是一个产生式,且α、β∈(VN∪VT)*。

如果α1Þα2Þ…Þαn,则我们称这个序列是从α1至α2的一个推导。

若存在一个从α1αn的推导,则称α1可推导出αn。

推导是归约的逆过程。

六、问答题

1、给出上下文无关文法的定义。

[解答]

一个上下文无关文法G是一个四元式(VT,VN,S,P),其中:

●VT是一个非空有限集,它的每个元素称为终结符号;

●VN是一个非空有限集,它的每个元素称为非终结符号,VT∩VN=Φ;

●S是一个非终结符号,称为开始符号;

●P是一个产生式集合(有限),每个产生式的形式是P→α,其中,P∈VN,

α∈(VT∪VN)*。

开始符号S至少必须在某个产生式的左部出现一次。

2、文法G[S]:

S→aSPQ|abQ

QP→PQ

bP→bb

bQ→bc

cQ→cc

(1)它是Chomsky哪一型文法?

(2)它生成的语言是什么?

[解答]

(1)由于产生式左部存在终结符号,且所有产生式左部符号的长度均小于等于产生式右部的符号长度,所以文法G[S]是Chomsky1型文法,即上下文有关文法。

(2)按产生式出现的顺序规定优先级由高到低(否则无法推出句子),我们可以得到:

SÞabQÞabc

SÞaSPQÞaabQPQÞaabPQQÞaabbQQÞaabbcQÞaabbcc

SÞaSPQÞaaSPQPQÞaaabQPQPQÞaaabPQQPQÞaaabPQPQQÞaaaPPQQQÞ

aaabbPqqqÞaaabbQQQÞaaabbbcQQÞaaabbbccQÞaaabbbccc

……

于是得到文法G[S]生成的语言L={anbncn|n≥1}

3、按指定类型,给出语言的文法。

L={aibj|j>i≥1}的上下文无关文法。

【解答】

(1)由L={aibj|j>i≥1}知,所求该语言对应的上下文无关文法首先应有S→aSb型产生式,以保证b的个数不少于a的个数;其次,还需有S→Sb或S→bS型的产生式,用以保证b的个数多于a的个数;也即所求上下文无关文法G[S]为:

G[S]:

S→aSb|Sb|b

4、有文法G:

S→aAcB|Bd

A→AaB|c

B→bScA|b

(1)试求句型aAaBcbbdcc和aAcbBdcc的句柄;

(2)写出句子acabcbbdcc的最左推导过程。

【解答】

(1)分别画出对应两句型的语法树,如图2-8-2所示

句柄:

AaBBd

图2-8-2语法树

(2)句子acabcbbdcc的最左推导如下:

SÞaAcBÞaAaBcBÞacaBcBÞacabcBÞacabcbScAÞacabcbBdcA

ÞacabcbbdcAÞacabcbbdcc

5、对于文法G[S]:

S→(L)|aS|aL→L,S|S

(1)画出句型(S,(a))的语法树。

(2)写出上述句型的所有短语、直接短语、句柄和素短语。

【解答】

(1)句型(S,(a))的语法树如图2-8-3所示

(2)由图2-8-3可知:

①短语:

S、a、(a)、S,(a)、(S,(a));

②直接短语:

a、S;

③句柄:

S;

④素短语:

素短语可由图2-8-3中相邻终结符之间的优先关系求得,即;

因此素短语为a。

6、考虑文法G[T]:

T→T*F|F

F→F↑P|P

P→(T)|i

证明T*P↑(T*F)是该文法的一个句型,并指出直接短语和句柄。

【解答】

首先构造T*P↑(T*F)的语法树如图2-8-4所示。

由图2-8-4可知,T*P↑(T*F)是文法G[T]的一个句型。

直接短语有两个,即P和T*F;句柄为P。

一、单项选择题

1、词法分析所依据的是。

a.语义规则b.构词规则c.语法规则d.等价变换规则

2、词法分析器的输出结果是。

a.单词的种别编码b.单词在符号表中的位置

c.单词的种别编码和自身值d.单词自身值

3、正规式M1和M2等价是指。

a.M1和M2的状态数相等b.M1和M2的有向弧条数相等

c.M1和M2所识别的语言集相等d.M1和M2状态数和有向弧条数相等

4、状态转换图(见图3-6-1)接受的字集为。

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

c.含奇数个0的二进制数组成的集合d.含偶数个0的二进制数组成的集合

5、词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此,。

a.词法分析器应作为独立的一遍b.词法分析器作为子程序较好

c.词法分析器分解为多个过程,由语法分析器选择使用d.词法分析器并不作为一个独立的阶段

解答1、b2、c3、c4、d5、b

二、多项选择题

1、在词法分析中,能识别出。

a.基本字b.四元式c.运算符

d.逆波兰式e.常数

2、令∑={a,b},则∑上所有以b开头,后跟若干个ab的字的全体对应的正规式为。

a.b(ab)*b.b(ab)+c.(ba)*b

d.(ba)+be.b(a|b)

解答1、a、c、e2、a、b、d

三、填空题

1、确定有限自动机DFA是的一个特例。

2、若二个正规式所表示的相同,则认为二者是等价的。

3、一个字集是正规的,当且仅当它

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1