全球旧事资料 分类
扬州大学编译原理课程设计
学号
姓名
专业计算机科学与技术
课程编译原理
指导教师
f目录
一程序简介与分析3
二程序适用范围3
三词法分析3
四语法分析4
五语义分析和中间代码生成10
六代码生成12
七流程图13
八实现14
九程序运行结果14
十总结18十一附录源程序18
f简单的编译程序设计
一程序简介与分析
本程序由四个部分组成词法分析子程序语法分析子程序语义分析子程序目标代码生成程序。本程序输入一个叫libotxt的c语言源程序然后对它进行词法语法语义分析并输出汇编代码。
词法分析输入的是c语言源程序输出的3是具有独立语法意义的单词符号。
语法分析以词法分析产生的编码流为输入按照SLR1分析方法进行语法分析产生语法树输出移进和归约的动作如果源程序不符合文法则有“语法分析出错”的提示。
语义分析阶段在语法分析的同时在归约的时候给出相应的语义动作最后输出中间代码四元式和新的符号表如果有未声明的变量出现则会提示出出错并显示出此变量的名称。
代码生成阶段将语义分析得到的中间代码四元式转化为汇编语言的目标代码并输出。
二程序适用范围
本程序的使用范围为整型常量四则运算为了简化问题本程序只考虑加法运算和乘法运算和布尔表达式以及相应的赋值语句条件转移语句和循环语句。
三词法分析
根据词法分析的需要我将源程序中的单词符号分为保留字字母标识符
界符三类统一用一张表表示如下
界符保留字表
程序从源程序文件libotxt中一次读入一个字符并判断它是不是字母界符
保留字空格换行结束符号或者非法字符。
流程图如下
f词法分析流程图
四语法分析
○1源程序中涉及的文法GP定义如下表
f○2上述文法的每个非终结符的FIRST集和FOLLOW集如下表
FIRST集FOLLOW集
Pid
Lid
Did
Eid
Tid
Fid
Bidthe
doa
dr
好听全球资料 返回顶部