编译原理课程设计--一个简单文法的编译器的设计与实现

编译原理课程设计--一个简单文法的编译器的设计与实现

ID:5262250

大小:398.50 KB

页数:44页

时间:2017-12-07

编译原理课程设计--一个简单文法的编译器的设计与实现_第1页
编译原理课程设计--一个简单文法的编译器的设计与实现_第2页
编译原理课程设计--一个简单文法的编译器的设计与实现_第3页
编译原理课程设计--一个简单文法的编译器的设计与实现_第4页
编译原理课程设计--一个简单文法的编译器的设计与实现_第5页
资源描述:

《编译原理课程设计--一个简单文法的编译器的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、编译原理课程设计报告课程设计报告设计题目:一个简单文法的编译器的设计与实现班级:计算机1206班组长学号:2012XXX组长姓名:XXX指导教师:XXX设计时间:2014年12月44编译原理课程设计报告设计分工组长学号及姓名:2012XXXXXX分工:1)读取源文件进行词法分析2)进行LL(1)分析生成分析表3)设计顶层自动机将源程序分段4)生成可执行的汇编程序组员1学号及姓名:2012XXXXXX分工:1)设计第二层自动机处理程序片段2)生成中间语言四元式3)源程序错误处理组员2学号及姓名:2012XXXXXX分工:1)设计第三层自动机处理复合表达式2)设计带

2、动作的LL(1)文法3)源程序错误处理44编译原理课程设计报告摘要编译原理课程具有很强的理论性和实践性,是计算机专业的一门非常重要的专业基础课程,在系统软件中也是占有十分重要的地位。本次课程设计我们是在VisualC++的平台上应用了词法分析、语法分析、语义分析、中间语言生成以及目标语言生成的知识设计了一个简单的编译器前端。其中设计了一个简单的有限自动机来扫描源程序即进行语法分析,并生成了关键字表、标志符表、界符表、常数表和Token串;设计了一个LL(1)文法和一个带动作的文法来实现语法分析,并生成了Select集和LL(1)分析表;采用了四元式序列的设计来生

3、成中间语言;通过汇编语言设计来生成目标语言。最后为了使该编译器更加完善,我们设计了简单的的错误检查机制,能够对源程序进行比较全面的错误检查同时也能够指出错误出现的大致位置,增强了该编译器的健壮性。关键字:编译器,前端,有限自动机,LL(1)文法,汇编语言,错误处理44编译原理课程设计报告目录摘要31、概述52、课程设计任务及要求52.1设计任务52.2设计要求63、算法与数据结构63.1词法分析器的算法63.2语法分析器的算法123.2.1LL(1)文法设计算法123.2.2递归下降子程序设计算法193.3中间语言生成器算法203.4处理复合表达式算法243.5

4、目标语言生成器算法303.6数据结构394、程序设计与实现394.1编译程序设计与实现394.2程序实验结果394.2.1待测源程序394.2.2词法分析结果404.2.3语法分析结果414.2.4中间语言生成结果424.2.5目标语言生成结果434.2.6程序错误处理结果445、参考文献4444编译原理课程设计报告1、概述本次课程设计的编译程序主要包括了词法分析器、语法分析器、中间代码生成器和目标代码生成器四部分,编译程序的输出结果包括了词法分析后的关键字表、界符表、标识符表和Token串,语法分析后的Select集和LL(1)分析表;中间代码生成器产生的四元

5、式序列。最后除了完成设计所要求的内容之外,我们还做了一些扩展例如:设计了目标代码生成器来生成可执行的汇编程序;还设计了错误检查机制来查找源程序的错误并指出错误产生的大致位置。词法分析是编译程序的第一步操作,它的任务是:从左至右扫描源程序的字符串,按照一定的词法规则识别出一个个正确的字符,并转换成该字符相对应的Token码,最终生成一个完整的Token串以供语法分析使用。由此可知,词法分析是整个编译程序的基础,而执行词法分析的一系列操作的就是词法分析器。语法分析是编译程序的第二步操作也是编译程序的核心部分,其主要任务是:分析语法内容,确定语法结构同时生成Selec

6、t集和LL(1)分析表。中间代码和目标代码的生成是对源程序的进一步操作,其任务是:根据词法分析产生的Token串和语法分析确定的语法结构来生成中间语言——四元式和目标语言——汇编语言程序。2、课程设计任务及要求2.1设计任务一个简单文法的编译器前端的设计与实现l定义一个简单程序设计语言文法(包括变量说明语句、算术运算表达式、赋值语句;扩展包括逻辑运算表达式、If语句、While语句等);l扫描器设计实现;l语法分析器设计实现;l中间代码设计;44编译原理课程设计报告l中间代码生成器设计实现。l目标代码生成器设计实现2.2设计要求l给出一个源程序文件,作为编译器前

7、端的输入l输出相关编译阶段的运行结果l词法分析阶段:l生成Token序列;l生成关键字表、界符表、符号表系统。l中间代码生成阶段:l生成四元式序列;l生成符号表系统。3、算法与数据结构3.1词法分析器的算法1)一个简单有限自动机(扫描器)的设计:①②③④⑤n?ℓℓd≮-dd.dd≮---≮≮⑥⑦==≮-…#-d其中:⑴ℓ(字母),d(数字),#(源程序结束符)(2)?(空格,回车,换行)需要滤掉(3)≮(泛指单词的后继附)(4)……(表示省略了其他界符的处理)2)一个简单词法分析器设计:44编译原理课程设计报告开始结束调用识别器关键字/标识符算术常数结束符#查K

8、T表查到查填IT表查填C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。