1 / 4
《编译技术》课程设计大纲及指导?/p>
实验名称?/p>
根据给定的文法完成一个小型编译器?/p>
实验目的?/p>
本课程设计实验项目的目标是通过实际构造一个完整的编译器,
加深对编译器实现原理的理
解,了解完整编译系统的构造方法?/p>
矚慫润厲钐瘗睞枥庑赖賃軔?/p>
实验类型?/p>
验证型、提高型
实验学时?/p>
50
学时
实验描述?/p>
根据各难度的题目的说明,选择一个难度等级,将获得一份随机分配的该难度等级的文法?/p>
根据获取的文法实现编译器?/p>
聞創沟燴鐺險爱氇谴净祸測?/p>
难度等级:低
目标?/p>
完成编译器及解释执行程序?/p>
解释执行程序对编译器产生?/p>
PCODE
能解释执行,
?/p>
生运行结?/p>
文法?/p>
PL/0
文法(与教材上的文法略有差别?/p>
优化:无
中间代码:无
目标码:
PCODE
最高分?/p>
65
难度等级:中
目标:完成编译器及解释执行程序,解释执行程序对编译器产生?/p>
PCODE
能解释执行,
产生运行结果
文法:扩?/p>
C0
文法
优化:无
中间代码:无
目标码:
PCODE
最高分?/p>
85
难度等级:高
目标:实现编译器,生?/p>
X86
汇编?/p>
MIPS
汇编
文法:扩?/p>
C0
文法
(
无实?/p>
)
优化:基本块内部的公共子表达式删除(
DAG
图)
?/p>
全局寄存器分配(引用计数或着色算法)
?/p>
数据流分析(通过活跃变量分析,或利用定义
-
使用链建网等方法建立冲突图)
?/p>
残骛?
諍锩瀨濟溆塹籟婭骒?/p>
其它优化自选;
代码生成时合理利用临时寄存器(临时寄存器池)
,并能生成较高质量的目标代码?/p>
中间代码:四元式
目标码:
32
?/p>
X86
汇编?/p>
MIPS
汇编(任选一?/p>
最高分?/p>
100
实验要求?/p>
1.
每人独立完成一份作?/p>
2.
采用递归子程序法进行语法分析,所有代码要求手工编程实?/p>