- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《编译原理》课程设计报告 课程设计目的 通过课程设计进一步理解高级语言在计算机中的执行过程,了解现代编译器的运作机制,加深对编译原理中重点算法和编译技术的理解,提高自己自学和理解的能力。学会如何利用已有软件JFLex、Java_cup对词法分析器及语法分析器的构造。设计概述本tiger语言编译器的编译过程涉及到编译五个阶段中的二个,即词法分析器、语法分析器。其中语法分析后还完成了语法树的打印的构造以及类型检查。词法分析器由JFLex编译正则式生成,词法分析器编译产生式生成,语法分析器由CUP生成。结果通过GUI界面呈现在使用者面前。编译程序需要在单词级别上来分析和翻译源程序,所以首先要识别出单词,而词法分析部分的任务是:从左至右扫描源程序的字符串,按照词法规则(正则文法规则)识别出一个个正确的单词,并转换成该单词相应的二元式(种别码、属性值)交给语法分析使用。因此,词法分析是编译的基础。执行词法分析的程序称为词法分析器。语法分析是编译程序的核心部分,其主要任务是确定语法结构,检查语法错误,报告错误的性质和位置,并进行适当的纠错工作。设计过程设计构思 程序主要完成三大功能模块:词法分析器、语法分析器、GUI人机交互界面。词法分析器由JFLex编译正则式生成,其中必须为外界提供一个获取记号流的接口,实验中定为java_cup.runtime.Symbol next_token。语法分析器是建立在词法分析器上的,故必须包含词法分析器以便获得记号流,next_token为语法分析器提供TOKEN,语法分析器的对外接口是:java_cup.runtime.Symbol debug_parse(),同时返回语法树的根节点。GUI界面是提供人机交互的,它能够依次显示词法分析阶段分析得到的所有TOKEN的信息,语法阶段生成的语法树,另外对于词法和语法阶段出现的错误在“错误提示”文本框中一一列举出来,提供用户改进代码的信息。流程图:GUI界面GUI界面词法错误程序输入流词法错误程序输入流记号流词法分析器记号流词法分析器TOKENTOKEN语法树语法分析器语法树语法分析器语法、类型错误语法、类型错误类及文件说明:包Absyn Print.java //print out the syntax tree…… //The abstract syntax classes for Tiger包errormsg ErrorMsg.java //used to produce error messages with detail information包java_cup.runtime //Support for CUP parser包parse Grm.java //Parser analyserMainInterface.java //GUI interfaceSym.java //tokens decimal representationYylex.java //Lexer analyser包SemantEntry.java //for bindings in value environmentEnv.java //holds a value ,type environment and an error printerExpTy.java //holds the result of translating and type-checkingFunEntry.java //for function bindingsSemant.java //the main type-checking moduleVarEntry.java //for variable bindings包SymbolSymbol.java //makes strings into unique Symbol objectsTable.java //does environments with Scopes包Translate包Types //describes Tiger_language types词法分析器 这部分的工作主要是熟悉JFLex的使用以及正确书写正则式,通过正则式的书写,生成相应的词法分析器。JFLex的使用 修改jflex-1.4.2\bin中的jflex.bat文件中的参数, JAVA_HOME=%JAVA_HOME%\lib\classes.zip; JFLEX_HOME=%JFLEX_HOME%\lib\JFlex.jar;运行jflex.bat 并给选
您可能关注的文档
- 毕业论文-泵相关实验_流体实验台设计.doc
- (非常不错)管理信息系统课程设计--超市信息管理系统.doc
- 《电工电子综合》课程设计说明书--简易数码锁的课程设计.doc
- 《电子技术》课程设计报告--交通灯数电课程设计报告.doc
- 《热处理设备》课程设计任务书--设计950℃120kgh的箱式电阻炉设计.doc
- 《数据结构》课程设计报告--停车场管理.doc
- 《数据库原理及应用》课程设计指导书《DBS201》课程设计指导书.doc
- 【毕业设计(论文)】RIP_OSPF_BGP三大协议运行原理以及环路解决方案.doc
- 【毕业设计】步进电机正反转设计--单片机课程设计论文.doc
- 【毕业设计】热能专业毕业设计135MW机组电厂初设及制粉系统设计.doc
文档评论(0)