没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
2015~2016 秋季学期编译原理实验
Decaf Compiler 实验总述
什么是 Decaf?
Decaf 是一种非常简单的面向对象编程语言。它是一种强类型的、面向对象的、支持
单继承和对象封装的语言。实验用的 Decaf 更加类似 Java,与 C++有比较大的差别。学
会用 Decaf 写程序是非常简单的一件事情,但是请记住 Decaf 跟现实中使用的编程语言并
不完全相同,它是经过简化且面向编译器教学的需要构造的。下面是一段 Decaf 程序:
class Main {
static void main() {
class Fibonacci f;
f = new Fibonacci();
Print(f.get(ReadInteger()));
}
}
class Fibonacci {
int get(int i) {
if (i < 2) {
return 1;
}
return get(i - 1) + get(i - 2);
}
}
这段代码的大意是从键盘读取一个整数,然后把下标为这个整数的 Fibonacci 数打印
到屏幕上。从中可以看出:
1、Decaf 程序有一个叫做 Main 的类,并且含有一个静态的,返回值为 void,参数
列表为空的 main 函数,这是整个程序的入口。main 函数必须是静态函数,返回类型为
void,参数列表为空。
2、Decaf 程序中引用类名、函数名等等不需要有事先声明,但是所引用到的符号在整
个程序中必须有适当的定义(这一点跟 Java 是一样的)。
Decaf Compiler 实验要做什么?
亲自动手,实现一个非常简单的 Decaf 编译器。这个编译器的输入是 Decaf 源语言程
序,输出是 MIPS R2000/R3000 伪指令汇编程序。
下图是 Decaf 编译器的大致工作流程:
爱设计的唐老鸭
- 粉丝: 19
- 资源: 291
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0