上传者: 42173218
|
上传时间: 2021-11-21 22:36:09
|
文件大小: 898KB
|
文件类型: -
MiniDecaf 编译实验
实验概述
MiniDecaf [^1] 是一个 C 的子集,去掉了如 include/define/多文件/struct 等特性。
这学期的编译实验要求同学通过多次“思考-实现-重新设计”的过程,一步一步实现从简单到复杂的 Minidecaf 语言的完整编译器,
能够把 MiniDecaf 代码编译到 RISC-V 汇编。
从而能够理解并解决编译真实的程序设计语言时遇到的问题,并能与编译的原理进行对照。
下面是 MiniDecaf 的快速排序,和 C 是一样的
int qsort(int *a, int l, int r) {
int i = l; int j = r; int p = a[(l+r)/2];
while (i <= j) {
while (a[i] < p) i = i + 1;
while (