《编译技术》课程设计实验报告实验名称编译器程序
姓名
学号
班级
年月日
f一、课设要求
模仿上学期给定的程序根据下面具体的内容用C语言对下述文法和单词表定义的语言设计编制一个编译器。设计报告格式撰写报告
1单词符号及种别表
2语法结构定义
程序mai
语句块
f语句块‘‘语句串’’程序用括号括起来
语句串语句语句
语句赋值语句条件语句循环语句
赋值语句ID表达式赋值语句用””号
条件语句if条件语句块
循环语句do语句块while条件
条件表达式关系运算符表达式
表达式项项项
项因子因子因子
因子ID
um表达式
umε数字数字数字εeε数字数字εID字母字母d数字
字母abc…zABC…Z
数字012…9
关系运算符
312
f二、总体设计思想
采用递归下降自上而下的语法制导翻译法。
三、详细算法设计
词法分析程序→语法分析程序→语义分析程序→编译器。不断完善不断改进。渐变的过程。在此给出算法思想。
四、流程框图
图I主函数示意图
f图III语句块分析示意图512
f图IV语句串分析示意图
f图V语句分析示意图712
f五、函数相关说明
1所有函数一览
voidsca
er扫描
voidlrparser
voidstaBlocki
t
Chai
语句块
voidstaStri
gi
t
Chai
语句串
voidstai
t
Chai
语句
voidfuzhi赋值语句
voidtiaojia
i
t
Chai
条件语句
voidxu
hua
循环语句
charEExpresiio
表达式
charTTerm项
charFFactor因子
char
ewTemp自动生成临时变量
voidbackpatchi
tpi
tt回填
i
tmergei
tp1i
tp2合并p1和p2
voidemitcharreschar
um1charopchar
um2生成四元式
f六、程序运行结果
图VI赋值语句的分析
图VII条件语句的分析912
f图VIII循环语句的分析
f图IX综合
七、编译器使用说明
程序提示用户输入字符串“Pleasei
putyoursourcestri
g”用户输入字符串并以“”号结束。回车后程序显示运行结果。
1112
f八、心得与体会
九、源程序清单
fr