- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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抽象机指令序列。
感谢即将成为自己人生中最亲爱的你,相遇是缘,相恋是爱,相守是情。
感谢即将成为自己人生中最亲爱的你,相遇是缘,相恋是爱,相守是情。
昔。人生能有三五知己,懂得自己,足矣!
昔。人生能有三五知己,懂得自己,足矣!
渺渺红尘,茫茫人海,没有过早,也没有太晚,遇见的自然是恰逢其时。
有人说,这世间的所有相遇,都是久别重逢。惟有父母与子女,是为了别离。
父母为自己付出的,永远是百分之百的绵绵恒爱。每当看到满头如雪,弯腰驼背,步履蹒跚的父亲母亲,总会不由自主地想起,他们曾用最
您可能关注的文档
最近下载
- 梁氏族谱之祖系.doc VIP
- 工程维修委托协议合同书.docx VIP
- 《RPA财务机器人实训教程》教案示例.docx VIP
- 2023年3月scratch图形化编程等级考试试卷(四级)不带答案.docx VIP
- MITSUBISHI三菱CC-Link IE现场网络Basic远程I_O模块用户手册.pdf
- 2025年公务员多省联考《申论》题(天津市区卷).docx VIP
- 《GNSS原理及应用》全套教学课件.pptx
- 偷窥漫画第一季完整.docx VIP
- 2023《传统资源型城市的产业转型问题研究—以辽宁鞍山市为例》7400字.docx VIP
- 新时代中国特色社会主义理论与实践课件-2024年高教版研究生新中特教材.pdf VIP
文档评论(0)