- 37
- 0
- 约2.27万字
- 约 10页
- 2017-06-19 发布于辽宁
- 举报
编译原理课程设计报告-简单编译器的设计与实现本科论文
编译原理课程设计
——简单编译器的设计与实现
班 级:
组长:
组员:
指导教师:
设计时间:2016年12月
姓名
分工
组长:
语法分析部分,语义分析和中间代码生成部分,符号表的管理,目标代码的生成,数据结构的设计和总体框架的设计。
组员:
中间代码优化部分,负责从DAG图中获得优化后的四元式代码,以及将中间变量填写入符号表内。
组员:
中间代码优化部分,负责优化DAG图的建立。
组员:
词法分析部分,词法分析部分的符号表和错误表的记录。
摘要 4
1.概述 5
2.课程设计任务及要求 6
2.1 设计任务 6
2.2 设计要求 6
3.算法及数据结构 7
3.1算法的总体思想(流程) 7
3.2词法分析模块 8
3.2.1功能 8
3.2.2数据结构 8
3.2.3算法 10
3.3语法分析(含语义分析和中间代码生成)模块 11
3.3.1功能 11
3.3.2数据结构 13
3.3.3算法 16
3.4中间代码优化模块 19
3.4.1功能 19
3.4.2数据结构 20
3.4.3算法 20
3.5目标代码生成模块 23
3.5.1功能 23
3.5.2数据结构 24
3.5.3算法 24
4.程序设计与实现 26
4.1程序流程图 26
4.2 程序说明 26
4.3实验结果 32
5.系统特色 40
6.结论 41
7.参考文献 41
8.收获、体会和建议 41
摘要
一个编译器所进行的工作一般可以划分为五个阶段:词法分析、语法分析、语义分析和中间代码产生、中间代码的优化、目标代码生成。
我们设计了并且实现了一个简单的类C语言编译器,该编译器拥有完整的前端和后端,能够进行基本的编译功能并产生可执行文件向屏幕输出源程序的运行结果。
该编译器的词法分析器可以识别绝大部分标准C语言支持的词法符号,该词法分析器可以过滤空格、Tab和回车,并且支持注释功能。该词法分析器主要通过有限自动机的状态跳转来实现,根据自动机结束状态来得到该单词的TOKEN值。该模块具有词法错误位置提示功能。
该编译器的语法部分采用了递归下降子程序的文法分析方法,所设计的文法支持了函数、函数类型声明、变量类型声明、变量定义、表达式语句、if条件语句和while循环语句以及简单输出功能。在表达式语句方面,我们设计了支持所有算术运算、关系运算、逻辑运算和位运算功能的语法结构,并且语法上支持一维数组和结构体。该编译器语义分析和生成四元式阶段能够对变量定义和语法错误进行检测,能够识别出未定义的标识符和重复定义标识符,该阶段最终实现生成中间代码——四元式。
该编译器拥有中间代码优化模块,采用DAG优化算法按基本块对四元式进行了优化,该编译器的目标代码是8086汇编语言代码,能够实现将优化后的四元式序列转化生成可执行的汇编语言文件,并且运行执行该文件,向屏幕输出运算结果。
该编译程序的主要特色是能够将最终结果输出显示到屏幕,并且该编译程序能够支持前置++和后置++这种语法,拥有类似C语言的这种简便性。
关键词:编译原理,词法分析,语法分析,四元式,DAG算法
1.概述
编译原理课程兼有很强的理论性和实践性,是计算机专业的一门非常重要的专业基础课程,在系统软件中占有十分重要的地位。编译原理课程设计是本课程重要的综合实践教学环节,是对平时实验的一个补充。通过编译器相关子系统的设计,使学生能够更好地掌握编译原理的基本理论和编译程序构造的基本方法和技巧,融会贯通本课程所学专业理论知识;培养学生独立分析问题、解决问题的能力,以及系统软件设计的能力;培养学生的创新能力及团队协作精神。
一个编译器所进行的工作一般可以划分为五个阶段:词法分析、语法分析、语义分析和中间代码产生、中间代码的优化、目标代码生成。
首先是词法分析,针对词法分析,我们设计了一个可以识别绝大部分标准C语言支持的词法符号,该词法分析器可以过滤空格、Tab和回车,并且支持注释功能,即过滤掉注释符号$后面的代码。该词法通过有限自动机的状态跳转来实现,根据自动机结束状态来得到该单词的TOKEN值,词法分析器在识别到一个单词后,将该单词记录下来,如果是数据,则会在符号表的相应位置记录它的值,如果是标识符,则会先在符号表上进行查询,若没有则将其记录到符号表上,并将相应TOKEN的指针指向表中该位置。
接下来进行语法分析,在语法分析部分,会对所编写的代码的语法进行检验,看是否合乎我们所设定的语法规则,这里我们采用了递归下降子程序的文法分析方法,所设计的文法支持了函数、函数类型声明、变量类型声明、变量定义、表达式语句、if条件语句和while循环语句以及cout简单输出功能。在表达式语句方面,我们设计了支持所有算术运算、关系运算、逻辑运算和位运算功能的语法结构
您可能关注的文档
- zx7400逆变电源系统研究 材料成型及控制工程专业 本科论文.doc
- zy20001431掩护式液压支架设计说明书本科论文.doc
- 阿莎姆奶茶在兰州市场的营销策划方案本科论文.doc
- 安徽一万纺织有限公司车间12、车间13工程施工组织设计本科论文.doc
- 安居小区施工组织设计本科论文.doc
- 安全检查站施工组织设计本科论文.doc
- 安阳市英皇大酒店设计-土木工程生本科论文.doc
- 安置房a地块工程安全生产文明施工组织设计本科论文.doc
- 安阳市基础教育教学研究项目-提升青年教师专业素养的校本方法研究立项申报书本科论文.doc
- 安置房改造公租房简装施工组织设计本科论文.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 我们仨电子版.pdf VIP
- 妇幼保健院十五五发展规划.docx VIP
- 小学生必背古诗75首(打印版).pdf VIP
- 期末重难点检测卷(含解析)-2026年数学三年级下册北师大版.pdf VIP
- ZXK-7532数控立式钻铣床主运动、进给系统及控制系统的设计.doc VIP
- 2025至2030中国碳纤维复合材料在航空航天领域应用现状及投资机会报告.docx
- 雅马哈psre313使用说明书.pdf VIP
- 临床成人患者医用粘胶相关性皮肤损伤预防及护理-MARSI.pptx
- 电力行业深度:算力之争,电力为王,聚焦美国AI能源革命核心赛道.pptx VIP
- 房地产上市公司偿债能力分析【文献综述】.docx VIP
原创力文档

文档评论(0)