编译原理及技术期末考试复习试题整理_第1页
编译原理及技术期末考试复习试题整理_第2页
编译原理及技术期末考试复习试题整理_第3页
编译原理及技术期末考试复习试题整理_第4页
编译原理及技术期末考试复习试题整理_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

./2.1考虑文法G[S],其产生式如下:S→<L>|aL→L,S|S试指出此文法的终结符号、非终结符号。终结符号为:{<,>,a,,,}非终结符号为:{S,L}开始符号为:S<2>给出下列各句子的分析树:①<a,a>

②<a,<a,a>>③<a,<<a,a>,<a,a>>>

<3>构造下列各句子的一个最左推导:①<a,a>S<L><L,S><S,S><a,S><a,a>②<a,<a,a>>

S<L><L,S><S,S><a,S><a,<L><a,<L,S>>

<a,<S,S>><a,<a,S>><a,<a,a>>③<a,<<a,a>,<a,a>>>S<L><L,S><S,S><a,S><a,<L>><a,<L,S>>

<a,<S,S>><a,<<L>,S>><a,<<L,S>,S>><a,<<S,S>,S>>

<a,<<a,S>,S>><a,<<a,a>,S>><a,<<a,a>,<L>>>

<a,<<a,a>,<L,S>>><a,<<a,a>,<S,S>>><a,<<a,a>,<a,S>>>

<a,<<a,a>,<a,a>>><4>构造下列各句子的一个最右推导:=1\*GB3①<a,a>S<L><L,S><L,a><S,a><a,a>②<a,<a,a>>S<L><L,S><L,<L>><L,<L,S>><L,<L,a>>

<L,<S,a>><L,<a,a>><S,<a,a>><a,<a,a>③<a,<<a,a>,<a,a>>S<L><L,S><L,<L>><L,<L,S>><L,<L,<L>>>

<L,<L,<L,S>>><L,<L,<L,a>>><L,<L,<S,a>>>

<L,<L,<a,a>>><L,<S,<a,a>>><L,<<L>,<a,a>>>

<L,<<L,S>,<a,a>>><L,<<L,a>,<a,a>>><L,<<S,a>,<a,a>>>

<L,<<a,a>,<a,a>>><S,<<a,a>,<a,a>>><a,<<a,a>,<a,a>>><5>这个文法生成的语言是什么?L<G[S]>=<α1,α2,...,αn>或a其中αi<1≤i≤n>,即L<G[S]>是一个以a为原子的纯表,但不包括空表。2.2考虑文法G[S]S→aSbS|bSaS|ε<1>试说明此文法是二义性的。可以从对于句子abab有两个不同的最左推导来说明。SaSbSabSabaSbSababSabab

SaSbSabSaSbSabaSbSababSabab

所以此文法是二义性的。<2>对于句子abab构造两个不同的最右推导。SaSbSaSbaSbSaSbaSbaSbababab

SaSbSaSbabSaSbabSababab<3>对于句子abab构造两棵不同的分析树。

<一>

<二>

<4>此文法所产生的语言是什么?此文法产生的语言是:所有a的个数与b的个数相等的由a和b组成的字符串。2.4已知文法G[S]的产生式如下:S→<L>|aL→L,S|S

属于L<G[S]>的句子是A,<a,a>是L<G[S]>的句子,这个句子的最左推导是B,最右推导是C,分析树是D,句柄是E。

A:①a

②a,a

③<L>

④<L,a>B,C:①S<L><L,S><L,a><S,a><a,a>

②S<L><L,S><S,S><S,a><a,a>

③S<L><L,S><S,S><a,S><a,a>

D:

E:①<a,a>

②a,a

③<a>④a解答:A:①B:③C:①D:②E:④3.1

有限状态自动机可用五元组〔VT,Q,δ,q0,Qf来描述,设有一有限状态自动机M的定义如下:

VT={0,1},Q={q0,q1,q2},Qf={q2},δ的定义为:

δ〔q0,0=q1

δ〔q1,0=q2

δ〔q2,1=q2

δ〔q2,0=q2

M是一个A有限状态自动机,它所对应的状态转换图为B,它所能接受的语言可以用正则表达式表示为C。其含义为D。A:

①歧义的

②非歧义的

③确定的

④非确定的

B:

C:①<0|1>*

②00<0|1>*

③<0|1>*00

④0<0|1>*0

D:①由0和1所组成的符号串的集合;

②以0为头符号和尾符号、由0和1所组成的符号串的集合;

③以两个0结束的,由0和1所组成的符号串的集合;

④以两个0开始的,由0和1所组成的符号串的集合。答案A:③

B:②

C:②

D:④3.2

<1>有穷自动机接受的语言是正则语言。〔

<2>若r1和r2是Σ上的正规式,则r1|r2也是。〔

<3>设M是一个NFA,并且L<M>={x,y,z},则M的状态数至少为4个。

<4>令Σ={a,b},则Σ上所有以b为首的字构成的正规集的正规式为b*<a|b>*。

<5>对任何一个NFAM,都存在一个DFAM',使得L<M'>=L<M>。〔

<6>对一个右线性文法G,必存在一个左线性文法G',使得L<G>=L<G'>,反之亦然。〔答案<1>

T

<2>

T

<3>

F

<4>

F

<5>

T3.3

描述下列各正规表达式所表示的语言。

<1>

0<0|1>*0

<2>

<<ε|0>1*>*

<3>

<0|1>*0<0|1><0|1>

<4>

0*10*10*10*

<5>

<00|11>*<<01|10><00|11>*<01|10><00|11>*>*答案<1>

以0开头并且以0结尾的,由0和1组成的所有符号串<2>

{α|α∈{0,1}*}即由0和1组成的所有符号串。<3>

由0和1组成的符号串,且从右边开始数第3位为0。<4>

含3个1的由0和1组成的所有符号串。

{α|α∈{0,1}+,且α中含有3个1}<5>

{α|α∈{0,1}*,α中含0和1的数目为偶数。}4.10已知文法G[S],其产生式如下:S→<L>|a

L→L,S|S

文法G[S]的算符优先关系由下表给出。建立与下表相应的算符优先函数并用算符优先分析法分析句子<a,<a,a>>。文法G[S]的算符优先关系表:解:对每个终结符或$建立符号f与g,把f<和g>分成一组。

根据G[S]的算符优先关系表,画出如下的有向图:优先函数如下:用算符优先分析法分析句子<a,<a,a>>

4.19<1>存在有左递归规则的文法是LL<1>的。

<2>任何算符优先文法的句型中不会有两个相邻的非终结符号。

<3>算符优先文法中任何两个相邻的终结符号之间至少满足三种

关系<<·,·>,>之一。

<4>任何LL<1>文法都是无二义性的。

<5>每一个SLR<1>文法也都是LR<1>文法。

<6>存在一种算法,能判定任何上下文无关文法是否是LL<1>的。

<7>任何一个LL<1>文法都是一个LR<1>文法,反之亦然。

<8>'LR<1>'括号中的1是指,在选用产生式A→α进行分析,看当前读入符号是否在FIRST<α>中。答案:<1>×<2>√<3>×<4>√<5>√<6>√<7>×<8>×4.20在编译程序中,语法分析分为自顶向下分析和自底向上分析两类。__A__和LL<1>分析法属于自顶向下分析;__B__和LR分析法属于自底向上分析。自顶向下分析试图为输入符号串构造一个__C__;自底向上分析试图为输入符号串构造一个__D__。采用自顶向下分析方法时,要求文法中不含有__E__。A、B:①深度分析法②宽度优先分析法③算符优先分析法④预测递归分析法C、D:①语法树②有向无环图③最左推导④最右推导E:①右递归②左递归③直接右递归④直接左递归A:④B:③C:③D:④E:②4.21自底向上语法分析采用__A__分析法,常用的是自底向上语法分析有算符优先分析法和LR分析法。LR分析是寻找右句型的__B__;而算符优先分析是寻找右句型的__C__。LR分析法中分析能力最强的是__D__;分析能力最弱的是__E__。A:①递归②回溯③枚举④移进-规约B、C:①短语②素短语③最左素短语④句柄D、E:①SLR<1>②LR<0>③LR<1>④LALR<1>A:④B:④C:③D:③E:②5.5用S的综合属性val给出在下面的文法中的S产生的二进制数的值〔例如,对于输入

101.101,S.val=5.625:

S→L.L|L

L→LB|BB→0|1〔1试用各有关综合属性决定S.val。〔2试用一个语法制导定义来决定S.val,在这个定义中仅有B的综合属性,设为c,它给出由B生成的位对于最后的数值的贡献。例如,在101.101中的第一位和最后一位对于值5.625的贡献分别为4和0.125。解答:<1>用综合属性决定s.val的语法制导定义:产生式语义规则

S->LS.val:=L.val;

S->L1.L2S.val:=L1.val+L2.val*L2.p;

L->BL.val:=B.val;

L.p:=2-1;

L->L1BL.val:=L1.val*2+B.val;L.p:=L.p*2-1;

B->0B.val:=0;

B->1B.val:=1;注:L.p表示恢复L.val的因子。<2>分析:设B.c是B的综合属性,是B产生的位对最终值的贡献。要求出B.c,必须求出B产生位的权,设B.i。B.i的求法请参看下面的图示:另外,设L.fi为继承因子,L.fs为综合因子,语法制导定义如下:产生式语义规则

S->LL.i:=1;L.fi:=2;L.fs:=1;S.val:=L.val;

S->L1.L2L1.i=1;L1.fi=2;L1.fs:=1;L2.i=2-1;L2.fi=1;L2.fs:=2-1;S.val:=L1.val+L2.val;

L->BL.s:=L.i;B.i:=L.s;L.val:=B.c;

L->L1BL1.i:=L.i*L1.fi;L.s:=L1.s*L1.fs;B.i:=L.s;L.val:=L1.val+B.c;

B->0B.c:=0;

B->1B.c:=B.i;5.15描述文法符号语义的属性有两种,一种称为<A>,另一种称为<B>。<A>值的计算依赖于分析树中它的<C>的属性值;<B>的值的计算依赖于分析树中它的<D>的属性值。A,B:①L-属性②R-属性③综合属性④继承属性C,D:①父结点②子结点③兄弟结点④父结点与子结点⑤父结点与兄弟结点解答:A③

B④

C②

D⑤5.16<1>语法制导定义中某文法符号的一个属性,既可以是综合属性,又可以是继承属性。<2>只使用综合属性的语法制导定义称为S-属性定义。<3>把L-属性定义变换成翻译模式,在构造翻译程序的过程中前进了一大步。<4>一个特定的翻译模式既适于自顶向下分析,又适于自底向上分析。<5>用于自顶向下分析的翻译模式,其基础文法中不能含有左递归。<6>在基础文法中增加标记非终结符不会导致新的语法分析冲突。解答:<1>FALSE

<2>TRUE

<3>TRUE

<4>FALSE

<5>TRUE

<6>FALSE6.7

<1>对于允许递归调用的程序语言,程序运行时的存储分配策略不能采用静态的存储分配策略。〔

<2>若一个程序语言的任何变量的存储空间大小和相互位置都能在编译时确定,则可采用静态分配策略。〔

<3>在不含嵌套过程的词法作用域中,若一个过程中有对名字a的非局部引用,则a必须在任何过程〔或函数外被说明。〔<4>在允许嵌套的词法作用域的语言中,过程不能作为参数,原因时不能建立其运行环境的存取链。〔<5>在堆式存储分配中,一个堆中存活的活动记录不一定是邻接的。〔<6>如果源程序正文中过程p直接嵌入在过程q中,那么,p的一个活动记录中的存取链接指向q的最近的活动记录。〔解答:<1><TRUE><2><FALSE><3><TRUE><4><FALSE>

<5><TRUE><6><TRUE>6.8运行时的存储分配策略分<

A

>和<

B

>两类。<

B

>又分<

C

>和<

D

>。一个语言中不同种类的变量根据定义域和生存期的不同往往采用不同的存储分配策略,C语言中的静态变量往往采用<

A

>,而自动<out>类变量往往采用<

C

>。使用mallac中申请的内存单元采用<

D

>。

A,B,C,D:①栈式分配②最佳分配

③堆式分配④静态分配

⑤随机分配

⑥动态分配解答:A:④

B:⑥

C:①

D:③7.2翻译算术表达式一〔a+b*〔c+d+〔a+b+c为

<1>四元式,

<2>三元式

<3>间接三元式解答:<1>四元式序列为:

oparg1arg2result<1>+abt1<2>+cd

t2<3>*t1t2t3<4>uminust3t4<5>+abt5<6>+t5ct6<7>+t4t6t7<2>三元式序列为:

oparg1arg2<1>+ab<2>+cd<3>*<1><2><4>uminus<3><5>+ab<6>+<5>c<7>+<4><6><3>间接三元式表示:

statement

oparg1arg2<1><11><11>+ab<2><12><12>+cd<3><13><13>*<11><12><4><14><14>uminus<13><5><11><15>+<11>c<6><15><16>+<14><15><7><16>

9.1试构造下面的程序的流图,并找出其中所有回边及循环。

readP

x:=1

c:=P*P

ifc<100gotoL1

B:=P*P

x:=x+1

B:=B+x

writex

halt

L1:B:=10

x:=x+2

B:=B+x

writeB

ifB<100gotoL2

halt

L2:x:=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论