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

编译原理期末考试卷编译原理末考试卷期末考试卷.doc

编译原理期末考试卷编译原理末考试卷期末考试卷.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理期末考试卷编译原理末考试卷编译原理期末考试卷编译原理期末考试卷

2001年编译原理试题 1.(10分)处于/* 和 */之间的串构成注解,注解中间没有*/。画出接受这种注解的DFA的状态转换图。 2.(10分)为语言 L = {ambn | 0 ( m ( 2n}(即a的个数不超过b的个数的两倍) 写一个LR(1)文法,不准超过6个产生式。(若超过6个产生式,不给分。若所写文法不是LR(1)文法,最多给5分。) 3.(10分)构造下面文法的LL(1)分析表。 D ( TL T ( int | real L ( id R R ( , id R | ( 4.(15分)就下面文法 S ( ( L) | a L ( L ( S | S ( 给出一个语法制导定义,它输出配对括号的个数。 ( 给出一个翻译方案,它输出每个a的嵌套深度。 如句子(a, (a, a) ),第一小题的输出是2,第二小题的输出是1 2 2。 5.(10分)Pascal语言for语句的含义见教材第222页习题7.13。请为该语句设计一种合理的中间代码结构。你可以按第215页图7.17的方式或者第219页图7.19的方式写出你的设计,不需要写产生中间代码的语法制导定义。 6.(5分)一个C语言程序如下: func(i1,i2,i3) long i1,i2,i3; { long j1,j2,j3; printf(Addresses of i1,i2,i3 = %o,%o,%o\n,i1,i2,i3); printf(Addresses of j1,j2,j3 = %o,%o,%o\n,j1,j2,j3); } main() { long i1,i2,i3; func(i1,i2,i3); } 该程序在某种机器的Linux上的运行结果如下: Addresses of i1,i2,i3 = 27777775460,27777775464,27777775470 Addresses of j1,j2,j3 = 27777775444,27777775440,27777775434 从上面的结果可以看出,func 函数的3个形式参数的地址依次升高,而3个局部变量的地址依次降低。试说明为什么会有这个区别。 7.(15分)一个C语言程序及其在某种机器linux操作系统上的编译结果如下。根据所生成的汇编程序来解释程序中四个变量的作用域、生存期和置初值方式等方面的区别。 static long aa = 10; short bb = 20; func() { static long cc = 30; short dd = 40; } .file static.c .version 01.01 gcc2_compiled.: .data .align 4 .type aa,@object .size aa,4 aa: .long 10 .globl bb .align 2 .type bb,@object .size bb,2 bb: .value 20 .align 4 .type cc.2,@object .size cc.2,4 cc.2: .long 30 .text .align 4 .globl func .type func,@function func: pushl %ebp movl %esp,%ebp subl $4,%esp movw $40,-2(%ebp) .L1: leave ret .Lfe1: .size func,.Lfe1-func .ident GCC: (GNU) egcs-2.91.66Linux (egcs-1.1.2 release) 8.(10分)C语言是一种类型语言,但它不是强类型语言,因为编译时的类型检查不能保证所接受的程序没有运行时的类型错误。例如,编译时的类型检查一般不能保证运行时没有数组越界。请你再举一个这样的例子说明C语言不是强类型语言。 9.(10分)如果在A机器上我们有C语言编译器CCA,也有它的源码SA(用C语言写成)。如何利用它通过尽量少的工作来得到B机器的C语言编译器CCB。 10.(5分)表达式((x.((yz.(x + y) + z) 3) 4 5和((x.((yz.(x + y) + z) 3 5) 4有同样的结果。在抽象机FAM上,哪一个表达式对应的目标代码的执行效率高?为什么? 2003年编译原理试题 1.(20分)写出字母表( = {a, b}上语言L = {w | w中a的个数是偶数}的正规式,并画出接受该语言的

您可能关注的文档

文档评论(0)

cxiongxchunj + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档