- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理课程设计一个简单文法的编译器的设计与实现
课 程 设 计 报 告
设计题目:一个简单文法的编译器的设计与实现
班 级:计算机1206班
组长学号:2012XXX
组长姓名:XXX
指导教师:XXX
设计时间:2014年12月
设计分工
组长学号及姓名:2012XXX XXX
分工:1)读取源文件进行词法分析
2)进行LL(1)分析生成分析表
3)设计顶层自动机将源程序分段
4)生成可执行的汇编程序
组员1学号及姓名:2012XXX XXX
分工:1)设计第二层自动机处理程序片段
2)生成中间语言四元式
3)源程序错误处理
组员2学号及姓名:2012XXX XXX
分工:1)设计第三层自动机处理复合表达式
2)设计带动作的LL(1) 文法
3)源程序错误处理
摘 要
编译原理课程具有很强的理论性和实践性,是计算机专业的一门非常重要的专业基础课程,在系统软件中也是占有十分重要的地位。本次课程设计我们是在Visual C++的平台上应用了词法分析、语法分析、语义分析、中间语言生成以及目标语言生成的知识设计了一个简单的编译器前端。其中设计了一个简单的有限自动机来扫描源程序即进行语法分析,并生成了关键字表、标志符表、界符表、常数表和Token串;设计了一个LL(1)文法和一个带动作的文法来实现语法分析,并生成了Select集和LL(1)分析表;采用了四元式序列的设计来生成中间语言;通过汇编语言设计来生成目标语言。最后为了使该编译器更加完善,我们设计了简单的的错误检查机制,能够对源程序进行比较全面的错误检查同时也能够指出错误出现的大致位置,增强了该编译器的健壮性。
关键字:编译器,前端,有限自动机,LL(1)文法,汇编语言,错误处理
目 录
摘要 3
1、概述 5
2、课程设计任务及要求 5
2.1设计任务 5
2.2设计要求 6
3、算法与数据结构 6
3.1词法分析器的算法 6
3.2 语法分析器的算法 12
3.2.1 LL(1)文法设计算法 12
3.2.2递归下降子程序设计算法 19
3.3中间语言生成器算法 20
3.4处理复合表达式算法 24
3.5目标语言生成器算法 30
3.6数据结构 39
4、程序设计与实现 39
4.1编译程序设计与实现 39
4.2程序实验结果 39
4.2.1待测源程序 39
4.2.2词法分析结果 40
4.2.3语法分析结果 41
4.2.4中间语言生成结果 42
4.2.5目标语言生成结果 43
4.2.6程序错误处理结果 44
5、参考文献 44
1、概述
本次课程设计的编译程序主要包括了词法分析器、语法分析器、中间代码生成器和目标代码生成器四部分,编译程序的输出结果包括了词法分析后的关键字表、界符表、标识符表和Token串,语法分析后的Select集和LL(1)分析表;中间代码生成器产生的四元式序列。最后除了完成设计所要求的内容之外,我们还做了一些扩展例如:设计了目标代码生成器来生成可执行的汇编程序;还设计了错误检查机制来查找源程序的错误并指出错误产生的大致位置。
词法分析是编译程序的第一步操作,它的任务是:从左至右扫描源程序的字符串,按照一定的词法规则识别出一个个正确的字符,并转换成该字符相对应的Token码,最终生成一个完整的Token串以供语法分析使用。由此可知,词法分析是整个编译程序的基础,而执行词法分析的一系列操作的就是词法分析器。
语法分析是编译程序的第二步操作也是编译程序的核心部分,其主要任务是:分析语法内容,确定语法结构同时生成Select集和LL(1)分析表。
中间代码和目标代码的生成是对源程序的进一步操作,其任务是:根据词法分析产生的Token串和语法分析确定的语法结构来生成中间语言——四元式和目标语言——汇编语言程序。
2、课程设计任务及要求
2.1设计任务
一个简单文法的编译器前端的设计与实现
定义一个简单程序设计语言文法(包括变量说明语句、算术运算表达式、赋值语句;扩展包括逻辑运算表达式、If语句、While语句等);
扫描器设计实现;
语法分析器设计实现;
中间代码设计;
中间代码生成器设计实现。
目标代码生成器设计实现
2.2设计要求
给出一个源程序文件,作为编译器前端的输入
输出相关编译阶段的运行结果
词法分析阶段:
生成Token序列;
生成关键字表、界符表、符号表系统。
中间
您可能关注的文档
- 环境影响评价报告公示:石灰窑石子机制砂生产线技改项目环评报告.doc
- 环境影响评价报告公示:海砂替代淡水砂作为生产原料环评报告.doc
- 环境影响评价报告公示:精密铸造技改项目环评报告.doc
- 环境影响评价报告公示:芽山悬崖栈道景区索道电梯安装及景观提升建设环评报告.doc
- 环境影响评价报告公示:生产超声波清洗机碳氢清洗机硅片精密清洗机太阳能电池设备水处理设备电镀设备环评报告.doc
- 环境影响评价报告公示:衡阳市禾和动物无害化处理中心建设项目环评报告.doc
- 环境影响评价报告公示:霍城县2017年改善人居环境建设污水处理厂改扩建工程环评报告.doc
- 环境影响评价报告公示:金沙湖环湖栈道(沙岗大桥东侧)工程环评报告.doc
- 环境影响评价报告公示:铜川市耀州区锦阳新城核心组团住宅区保障性租赁住房配套基础设施建设项目环评报告.doc
- 环境艺术设计专业 中式餐厅室内空间设计.doc
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 悬挑脚手架、落地脚手架安全专项施工方案.doc VIP
- 分级护理制度精编PPT课件.pptx VIP
- 梁德清体育活动等级量表(PARS-3)及评定标准.doc VIP
- 建筑施工技术(千年土木 小筑拾遗)知到课后答案智慧树章节测试答案2025年春潍坊工程职业学院.docx VIP
- ABB.ACS580替换550指南了解.pdf VIP
- 2025年公需课《人工智能赋能制造业高质量发展》试题及答案.doc VIP
- 建筑施工技术(千年土木 小筑拾遗)智慧树知到期末考试答案章节答案2024年潍坊工程职业学院.docx VIP
- 2023兖矿能源定向委培考试.pdf
- 潮汕工夫茶调研报告.docx VIP
- 生活中的物理问题“生活中的物理”探究.pptx VIP
文档评论(0)