BUAA编译课程——2021年秋季
SysY语言编译器,开发语言为java。
支持较充分的报错和优化
错误处理
非法符号
名称重定义
未定义的名称
函数参数个数不匹配
函数参数类型不匹配
无返回值的函数存在不匹配的return语句
有返回值的函数缺少return语句(考虑控制流)
不能改变常量的值
缺少分号
缺少右小括号
缺少右中括号
printf格式字符与表达式个数不匹配
在非循环块中使用break和continue语句
优化:
数据流图
常量替换
复制传播与常量合并
死代码删除
循环摘除
基于冲突图的寄存器分配
乘除法优化
窥孔优化