下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中国科学技术大学2009-2010学年第二学期考试试卷(A)考试科目:编译原理和技术得分: 学生所在系:姓名:学号:2、(10分)下而是类型表达式的语法:type T integer I boolean I array|num of type I record fieldjist end I T type1、(15分)从教材第2章的习题中找出一个正规式, 它所表示的语言就是右边的DFA所接受的语言。并请 依据教材上提供的方法确认该DFA是最简的DFAofieldJist T id : type I id : type field Ji st若规左:在记录类型中不能出现数组类型(包括不能出现数组
2、的指针类型)。请重新设汁一 个文法,把该约束体现在文法中,即它和上述文法的区别就是所左义的语言满足这个约朿。3、(10分)根拯教材333 if的递归下降预测分析方法以及图3.8的方式,给第2题题目(而 不是你答案)中的非终结符./?皿/_/讨写一个递归过程(若需要变换文法,则先变换文法)。4、(10分)为第2题题目的文法写一个翻译方案,若类型表达式不满足该题所规左的约束 则报告错误。注:第2题通过重新设计文法,本题通过静态检查,来达到同样的目的。5、(10 分)(1)Java语言的编译器通常把数组分配在堆上。Java数组一般不能静态确左大小应该 不是将它分配在堆上的原因,因为教材上图6.12给
3、岀了一种将不能静态确定大小的数组动 态地分配在活动记录栈上的方法。Java数组一般不能分配在活动记录栈上的原因是什么?(2)将数组分配在活动记录栈上和分配在堆上给程序运行带来什么区别?6、(5分)有人认为,下面C程序中结构体类型record的立义方式可用来动态生成其中a 数组的大小不一样的结构体,以适应某些编程场合的需要。你认为这样的程序能够通过C 编译器的类型检査吗?请说明理由。#include <malloc.h>typedcf stnict double r; int n; float a; record;main() record * p;p = malloc(sizeof
4、(record) + sizeof(float) * 5);p->n = 5: p->a4 = 100.0;7. (15分)对于教材上P172例6.4的程序(见下面C代码),GCC编译器(版本:(GNU) 4.2.3 (Debian4.2.3-5)所生成的优化代码(见下面中间的汇编代码)同书上给出的代码(见下而 左边的汇编代码)略有不同。请指岀该较新版本编译器完成的优化(或采用的不同代码生成 策略)。给一点提示:若把调用语句改成funcQ, j),所生成的优化代码和下面中间的汇编代 码的区别见下而右边的说明。func(i) long i; longj; j=i-l; funcfj)
5、;func:pushl1%ebp1func:1pushl%ebp1movl%esp, %ebp1movl%esp, %ebp1subl$4, %esp1subl$4, %esp1该指令改成subl S8, %espmovl8(%ebp), %edx 1movl8(%ebp), %eax1deci%edx1subl$1, %eax1在该指令和下条指令间movl%edx, -4(%ebp) 1movl%cax, (%esp)1 增加 movl %cax, 4(%esp)movl-4(%ebp), %eax 1callfunc1pushl%eax1leave1callfunc1ret1addl$4,
6、 %esp1.LI:1leave1ret18、(5分)请按教材上图12.4的方式给出第375页中类Point的对彖表示。9、(10分)下而左右两边是一个C程序的两个源文件的内容:#include <stdio.h>Iinclude <stdio.h>char *p = “0123456789"Ichar p10);f() Imain() printf C4%sif p);If(); pl = T;f();)I运行目标程序所得到的结果如下(编译器是GCC: (GNU) 4.2.3 (Debian 4.23-5): 0123456789Segmentation fault请描述该目标程序各数据区的内容,并回答为什么运行时会出现Segmentation faults10、(10分)下而的C程序分别经非优化编译和2级以上(含2级)的优化编译后,生成的 两个目标程序运行时的表现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- K36985-桥梁施工方案含人工挖孔
- 文化传播项目执行承诺书8篇范文
- 古建筑修复原汁原味承诺书8篇
- 肝癌手术治疗护理
- 产品设计规格书编写工具及案例解析
- 企业运营策略分析与决策支持工具
- 物流仓储运营优化模板
- 山东省济宁市泗水县2026届初三4月份质量检测试题语文试题试卷含解析
- 江北新区联盟重点达标名校2026年初三3月调研考试英语试题试卷含解析
- 四川省泸州市泸县重点名校2025-2026学年新课标Ⅱ卷中考考前15天终极冲刺数学试题含解析
- 六年级下 教科版 科学 第二单元《形形色色的植物》课件
- 西师版小学六年级下册数学教案表格
- 四肢骨折术前术后护理
- 《中医治疗颈椎病》课件
- 重大事故隐患判定标准与相关事故案例培训课件
- 环境影响评估投标方案(技术方案)
- 品种标识、批号管理制度
- 高中化学 摩尔质量气体摩尔体积学案 鲁科版必修1
- DZ∕T 0289-2015 区域生态地球化学评价规范(正式版)
- 江苏省2024年中职职教高考文化统考财会专业综合理论试卷
- MOOC 唐宋名家词-河南大学 中国大学慕课答案
评论
0/150
提交评论