1999年编译原理试题.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1999年编译原理试题 1. (10分)将下面的 1. (10分)将下面的DFA化成最简形式 2. a,b 3. (15分)为语言 L = { w | w乏(a | b)*并且在w的任何前缀中,a的个数不少于b的个数} 写一个LR (1)文法,不准超过6个产生式。(若超过6个产生式,不给分。若 所写文法不是LR (1)文法,最多给5分。) (20分)程序的文法如下: P D D D ; D | id : T | proc id ; D ; S (1) 写一个语法制导定义,打印该程序一共声明了多少个 id。 (2) 写一个翻译方案,打印该程序每个变量id的嵌套深度。 (10分)按P127图4.21的方式,给出图4.18中非终结符T的函数 (5分)一个C语言程序如下: typedef struct _a{ char c1; long i; char c2; double f; }a; typedef struct _b{ char c1; char c2; long i; double f; }b; mai n() { printf(Size of double, long, char = %d, %d, %d\n, sizeof(double),sizeof(lo ng),sizeof(char)); prin tf(Size of a, b = %d,%d\n,sizeof(a),sizeof(b)); } 该程序在SUN工作站上的运行结果如下: Size of double, l ong, char = 8, 4, 1 Size of a, b = 24,16 结构类型a和b的域都一样,仅次序不同,为什么它们需要的存储空间不一 样。 (15分)一个C语言函数如下: fun c(i) long i; { long j; j=i-1; fun c(j); } 该函数在PC机linux操作系统上编译生成的汇编代码如下: .file stack.c gcc2_compiled.: __gnu _compiled_c: .text .alig n 2 .globl _func .type _fun c,@f un cti on 」unc: pushl %ebp movl %esp,%ebp subl $4,%esp movl 8(%ebp),%edx decl %edx movl %edx, -4(%ebp) movl -4(%ebp),%eax pushl %eax call _func addl $4,%esp L1: leave ret Lfe1: .size _fun c,Lfe1-_f unc 试画出该函数的一个活动记录的内容,包括活动记录的每个单元存放什么东 西、执行movl 8(%ebp),%edx指令时栈顶指针所指的的位置、与活动记录有关的 另一个指针所指的位置和地址增长方向。 (10分)一个C语言函数如下: mai n() { int i,j,k; i=5; j=1; while(j100){ k=i+1; j=j+k; } 经优化编译后,生成的代码如下: .file optimize.c gcc2_compiled.: gnu _compiled_c: .text .alig n 2 .globl _func .type _fun c,@f un cti on 」unc: pushl %ebp movl %esp,%ebp movl $1,%eax movl $6,%edx .align 2,0x90 L4: addl %edx,%eax cmpl $99,%eax jle L4 leave ret Lfe1: .size _fun c,Lfe1-_f unc 试说明编译器对这个程序作了哪些种类的优化(只需要说复写传播、删除公 共子表达式等,不需要说怎样完成这些优化的)。 ( 5分)书上P279的表10.1给出了函数调用的翻译。但是这种翻译方式不能用 于虚函数的情况。试说明P281例中的虚函数调用obj.scale (zoom_factor)应该翻译 成什么形式的C语句。 一 ( 5分)把SFP表达式(?x.1+x)3翻译成FAM抽象机指令序列。 感谢即将成为自己人生中最亲爱的你,相遇是缘,相恋是爱,相守是情。 感谢即将成为自己人生中最亲爱的你,相遇是缘,相恋是爱,相守是情。 昔。人生能有三五知己,懂得自己,足矣! 昔。人生能有三五知己,懂得自己,足矣! 渺渺红尘,茫茫人海,没有过早,也没有太晚,遇见的自然是恰逢其时。 有人说,这世间的所有相遇,都是久别重逢。惟有父母与子女,是为了别离。 父母为自己付出的,永远是百分之百的绵绵恒爱。每当看到满头如雪,弯腰驼背,步履蹒跚的父亲母亲,总会不由自主地想起,他们曾用最

文档评论(0)

497721292 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档