设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>计算机毕业设计 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
基于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集中依赖的非终结符均被替换后,执行出队操作。达到了自底向上求解依赖关系的效果。















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

                 

打印本页 | 关闭窗口
本类最新文章
基于腾讯云的个人知识库管理系统 基于Android的酒店预定系统 基于matlab变频器控制交流电
基于微信小程序的家校联动平台管理 基于时频分析与自适应滤波技术的多 基于WxJava框架的集客微信公
| 关于我们 | 友情链接 | 毕业设计招聘 |

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