当前位置:问答库>考研试题

中科院编译原理与操作系统2003考研试题研究生入学考试试题考研真题

  摘要

中科院2003年硕士研究生入学考试试题

考试科目:编译原理与操作系统

第一部分 编译(40’)

一、(1/01)*0*说明是什么语言 画出DFA (10’)

二、S →过程调用语句/数组的赋值语句(10’)

过程调用语句为:id(id,id,…,id)

赋值语句: id(id,…,id):=id(id,…,id)

(a)写一个LR (1)方法(产生式不大于6个)

(b)若在LR 分析同时完成语义分析,中间代码生成,基于你的文法有什么困难?

三、E →E*E/+E/-E/unsigned-integer (10’)

为上面表达式产生栈机器代码,代码执行后,表达式值留在栈上,自己设计所需栈机器指令,并写清指令含义。

四、C 语言中,a 表示数组首址,而&a也表示数组首址,然而使用时有时并不相同,请根据下面写出a 与&a类型表达式 (10’)

(1)文件1:

tgpedef int A[10][20]

A a;

A * func ( )

{

return(a);

}

在linux 上用gcc 编译

报告:第6行warning: return from

incompatible pointer type

(2)typedef int A[10][20]

A a;

A *func( )

{

return(&a);

}

无类型方面错误

(3)typedef int A[10][20]

typedef int B[20]

共3页 第1页