毕业作品网站

 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>计算机毕业设计 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopinvvp QQ:1015083682   

基于Python和C#的类C编译器设计与实现 课程论文+任务书+项目源码

文章来源:www.biyezuopin.vip   发布者:毕业作品网站  

目录
一、 任务目标 1
二、 开发环境 1
三、 程序功能描述 1
四、 程序实现过程 1
五、 执行界面与运行结果 5
六、 问题和解决的方法、心得体会 12
一、任务目标
1、掌握使用高级程序语言实现一个一遍完成的、简单语言的编译器的方法。
2、掌握简单的词法分析器、语法分析器、符号表管理、中间代码生成以及目标代码生成的实现方法。
3、掌握将生成代码写入文件的技术。
二、开发环境
编程语言:Python 2.7、C# 7.0
使用工具: Visual Studio 2017、Pycharm 2018
操作系统:Windows 10,版本17134
运行环境:.Net Framework 4.6.1
三、程序功能描述
实现了C- -语言的词法分析、对所用文法LR(1)分析表的建立、语法分析、语义分析(包括语义栈、符号表、函数表、中间代码生成以及写入文件,方法为一遍扫描)、MIPS汇编生成及写入文件。
支持源代码保存、文法产生式显示、LR(1)分析表显示、分析过程展示、中间代码及MIPS汇编展示。
四、程序实现过程
1、主要算法与模块
①词法分析:
正则表达式匹配算法:
我借鉴了工具lex的词法分析算法,以正则表达式匹配的方法代替DFA进行词法分析,通过6个正则表达式并行匹配词法元素,每一次将位于开头的最长匹配序列识别为对应的正则表达式所代表的token,从而实现了词法分析。
②LR(1)语法分析:
求FIRST集算法
由于文法中产生式非终结符的FIRST集存在相互依赖关系,使用递归法会导致计算量的巨大,因此我使用了自下而上求解FIRST集依赖的算法:对于每个产生式左侧非终结符T,若其FIRST依赖于另一非终结符F,则将F加入到其FIRST集中。将所有FIRST集中含有非终结符的非终结符加入到列表Q中,当Q不为空时,对每个元素进行遍历:若其依赖的非终结符不在Q中,则将其替换为它的FIRST集中的终结符,当其FIRST集中依赖的非终结符均被替换后,执行出队操作。达到了自底向上求解依赖关系的效果。















  全套毕业设计论文现成成品资料请咨询微信号:biyezuopinvvp QQ:1015083682     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
基于MatlabSimulink 35kV输电线路继电保护的设计 分布式风电场低电压穿越故障建模与
大学生内容分享和社交平台的设计与 基于SSM框架的企业人事薪酬管理 基于大模型的代码注释自动生成与维
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopinvvp QQ:1015083682  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!