网站大量收购独家精品文档,联系QQ:2885784924

编译原理复习考试.pdfVIP

编译原理复习考试.pdf

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

编译原理

2014

本来想照题的,做完感觉没啥新意,就不照了。

考点还是那⼏个。

LL(1),LR(0),SLR(1)和LR(1)的状态机和分析表构建。

短语、直接短语、句柄的定义。

L模式和S模式的翻译模式(给例⼦写拓展)。

UD链和DU链,以及活跃变量的计算。

实验相关考了类的实例的成员变量地址,VTable的(详细具体)内容(offset和function的对应关系

啥的),考察⽅式是给TAC代码补Decaf代码。

以及给lex和yacc代码求匹配结果。

特殊的⼀题是要构造⼀个串使得同⼀⽂法(悬挂else打最近匹配补丁)的SLR(1)⾃动机和LR(1)⾃动

机的匹配失败时ACTION的⻓度不⼀样。

认真/好好刷下⼏次作业题,然后做两套题就⾏了(e_n的06-07啥的)。

⼤约复习时间是(全⼒)6-8h……(个⼈)

2013

顺⼿发⼀下编译好了。我依然记得的不多了。⼤家补充。

实验题:

1⼀段lex代码,问作⽤是什么,答案应该是统计单词个数吧。反正就是每⼀个单词就

count++。

234记不得了=,有⼀个是关于变量作⽤域的,好像是给了⼀句话⾥⾯引⽤了⼀个参

数,然后问这个参数可能出现在哪个参数表⾥,我记得有好多种情况吧,可以是global也

可以是某⼀个函数的formal之类的。

5给⼀段代码,两个类,⼀个继承另⼀个的。好像介绍了⼀下vtable,然后问每⼀个类的

vtable和每⼀个类的⼀个实例分别占多⼤空间。这道题考完之后⼤家对答案就没有任意两

个⼈是⼀样的。。

其它:

常规的什么控制流啊,还有句柄啊,是不是LR(0)算法啊,画FSM啊,有什么冲突啊,之类

的。最后那道题考的是continue,要求写⼀个合法性的判断语句,⼀个属性⽂法,⼀个拉

链回填。

2012

题⽬2⼤张,不过代码很多

需要速度

⼀、decaf

1.BYACC中函数的表示为

Function:AttributesTypeIdentblabla...

其中Attributes表示函数性质,如static,private,public等,EBNF为

Attributes:Attribute*

为⽅便起⻅,假定每个属性可以出现多次,且private和public可重复出现,如publicstaticpublic

privatevoidf()

//这都什么玩意⼉……

假定static=1,public=2,private=4,那么Attributes=5=101表示privatestatic。

写出Attributes的BYACC代码:

Attributes:________

{

__________

}

||/*empty*/{

/*nothing*/

}

2.在判断BadArgCountError中有这样⼀段代码:

argNum=func.isStatik()?func.getArglist().size():func.getArglist().size()+1;

请解释为什么⼀个+1⼀个不+1.

3.TAC码

classMain{

intx;

inty;

intf(inta){returna;}

intg(inta){returna*a;}

staticvoidmain(){

classMaina;

____________

}

还有简写的vtable

然后给了⼀段TAC码

//完全就是天书……全忘了

然后填答案

估计答案是a.x=a.f(a.y)四个中的⼀个

a.ya.x

把TAC反着写出来也就会了

⼆、

PPT1053⻚的图,a:=0变成a:=3

1.编译到第8⾏时,作⽤域栈的所有内容;以及每个作⽤域的符号表

2.第2次运⾏到L⾏时,Display表中的内容(要求回答是第⼏次调⽤)

3.静态作⽤域和动态,在运⾏时结果有什么不同?

三、

PPT1020⻚

1.B5的⽀配节点,回边,⾃然循环

2.B2的livein,liveout

3.d7的UD链

4.d5的DU链

四、

S→M{P.y:=M.x}P{S.x:=M.x+P.x}

P→{A.y:=0}A{P1.y:=A.x}P1{P.x:=A.x+P1.x}

P→{A.y:=P.y}A{P.x:=A.x}

A→({P.y:=A.y}P{A.x:=P.x})

A→a{A.x:=A.y+1}

M→ε{M.x:=0}

1.给出(a)a

文档评论(0)

152****0921 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档