编译技术课程设计
班学姓
级号名
计算机08023080602049周勇朱玉全
指导老师
二零一一年七月
f编译技术课程设计
一、目的
编译技术是理论与实践并重的课程,而其实验课要综合运用一、二年级所学的多门课程的内容,用来完成一个小型编译程序。从而巩固和加强对词法分析、语法分析、语义分析、代码生成和报错处理等理论的认识和理解;培养学生对完整系统的独立分析和设计的能力,进一步培养学生的独立编程能力。
二、任务及要求
基本要求:
1.词法分析器产生下述小语言的单词序列这个小语言的所有的单词符号,以及它们的种别编码和内部值如下表:单词符号DIMIFDOSTOPEND标识符常数(整),()种别编码1234567891011121314助记符DIMIFDOSTOPENDIDINTASSIGNPLUSSTARPOWERCOMMALPARRPAR内码值内部字符串标准二进形式
对于这个小语言,有几点重要的限制:首先,所有的关键字(如IFWHILE等)都是“保留字”。所谓的保留字的意思是,用户不得使用它们作为自己定义的标示符。例如,下面的写法是绝对禁止的:IF(5)x其次,由于把关键字作为保留字,故可以把关键字作为一类特殊标示符来处理。也就是说,对于关键字不专设对应的转换图。但把它们(及其种别编码)预先安排在一张表格中(此表叫作保留字表)。当转换图识别出一个标识符时,就去查对这张表,确定它是否为一个关键字。再次,如果关键字、标识符和常数之间没有确定的运算符或界符作间隔,则必须至少用一个空白符作间隔(此时,空白符不再是完全没有意义的了)。例如,一个条件语句应写为
fIFi0i1而绝对不要写成IFi0i1因为对于后者,我们的分析器将无条件地将IFI看成一个标识符。这个小语言的单词符号的状态转换图,如下图:
2.语法分析器能识别由加减乘除乘方括号()操作数所组成的算术表达式,其文法如下:E→ETETTT→TFTFFF→PFPp→Ei使用的算法可以是:预测分析法;递归下降分析法;算符优先分析法;LR分析法等。3.中间代码生成器产生上述算术表达式的中间代码(四元式序列)较高要求:
f1.扩充上述小语言的单词;2.增加语法分析器的功能,能识别条件语句和循环语句等;3.增加中间代码生成器的功能,能产生条件语句和循环语句等的中间代码(四元式序列)4.增加报错功能;5.将中间代码翻译成汇编语言。
三、实现过程说明
给出各题目的详细算法描述,数据结构和函数说明,流程图。(1)词法分析器:1算法描述:词r