招收攻读硕士学位研究生入学考试试题

上传人:bin****86 文档编号:45367205 上传时间:2018-06-16 格式:DOC 页数:3 大小:24.50KB
返回 下载 相关 举报
招收攻读硕士学位研究生入学考试试题_第1页
第1页 / 共3页
招收攻读硕士学位研究生入学考试试题_第2页
第2页 / 共3页
招收攻读硕士学位研究生入学考试试题_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《招收攻读硕士学位研究生入学考试试题》由会员分享,可在线阅读,更多相关《招收攻读硕士学位研究生入学考试试题(3页珍藏版)》请在金锄头文库上搜索。

1、2006 年招收攻读硕士学位研究生入学考试试题编译原理部分1、 (10 分)下面是 int i, j, k 这样的类型声明的两种不同语法: D T LD T L T int | real T int | real L L , id | id L id , L | id 如果用 LL(1)分析方法,应该选择哪个文法?如果用某种 LR 分析方法,选择哪 个文法更好?简要说明理由。2、 (6 分)用 SLR(1)文法能定义的语言集合、用 LR(1)文法能定义的语言集合 和用 LALR(1)文法能定义的语言集合之间有什么关系?(不需要给出理由。 )3、 (8 分)下面是一个 C 语言的函数: void

2、 f(char c, long j) char *p;char ch;long m3;p=m0=j; 在 x86/Linux 机器上经某版本的编译器编译生成的汇编代码如下: .file“frame.c“ .version “01.01“ gcc2_compiled.: .text .align 4 .globl f .type f,function f: pushl %ebp movl %esp,%ebp subl $24,%esp movl 8(%ebp),%eax movb %al,-1(%ebp) leal -1(%ebp),%edx movl %edx,-8(%ebp) movl 12

3、(%ebp),%eax movl %eax,-24(%ebp) .L1: leave参数 j参数 c返回地址老 ebp(控制链)esp ebp栈 增 长 方 向高地址低地址ret .Lfe1: .size f,.Lfe1-f .ident“GCC: (GNU) egcs-2.91.66 /Linux (egcs-1.1.2 release)“ 请将执行 subl $24,%esp 后,esp 和 ebp 指向地址之间的区域(见上图)用 于存放哪些变量的值,按照这些变量的名字、相对于 ebp 指向地址的偏移、字 节数(size)列出来。4、 (6 分)两个 C 语言文件 link1.c 和 li

4、nk2.c 的内容分别如下: int buf1 =100; 和 extern int *buf; main() printf(“%dn”, *buf); 在 X86/Linux 经命令 cc link1.c link2.c 编译后,运行时产生如下的出错信息: Segmentation fault (core dumped) 请说明原因。编译原理部分参考答案1对于 LL(1)分析方法,两个文法都不合适,左边的文法是左递归的,右边文 法有公共左因子。修改右边文法来适应 LL(1)分析的要求,相对来说比较容易 一些,因为只要提公共左因子。 对于 LR 的各种分析方法,两个文法都适用,但是采用左边的文

5、法更好一些。 用左边的文法时,分析器一边扫描一边归约,占用分析栈的空间较少。而用右 边的文法时,分析器要把所有的标识符都移进栈后才进行归约,因此使用较多 的分析栈空间。 (结合语法制导的翻译,采用左边的文法还有好处:便于确定 T 的类型属性在栈中的位置。 )2用 SLR(1)文法能定义的语言集合 用 LALR(1)文法能定义的语言集合, 用 LALR(1)文法能定义的语言集合 用 LR(1)文法能定义的语言集合。3变量名偏移字节数 c-1(%ebp)1 p-8(%ebp)4 ch-9(%ebp)1 m-24(%ebp)124buf 定义在文件 link1.c 中,使用在文件 link2.c 中。由于: 目标文件连接时并不检查名字的类型,因此,虽然两个文件对 buf 的类型 持不同的观点,但仍然能连接成目标程序; 目标文件连接时,是让不同文件中的同一名字的地址相同。因此,运行时,由于 buf 的内容是 100,取*buf 的值就是取地址 100 的内容。 该地址不在用户数据区内,因此报错。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号