首页 编译原理实验指导

编译原理实验指导

举报
开通vip

编译原理实验指导编译原理实验指导编译原理实验指导*资源编译原理实验教程及实验软件包http://staff.ustc.edu.cn/~yuzhang/compiler张昱,陈意云.编译原理实验教程.高等教育出版社,2009.5开发环境与工具(参见实验教程1.3节)Java语言规范(第3版)--JLS3http://java.sun.com/docs/books/jls/Java1.5的文法规范文件:java15.cup,java15.jj抽象语法树:EclipseASTJDTPlug-inDeveloperGuideReferen...

编译原理实验指导
编译原理实验指导编译原理实验指导*资源编译原理实验 教程 人力资源管理pdf成真迷上我教程下载西门子数控教程protel99se入门教程fi6130z安装使用教程 及实验软件包http://staff.ustc.edu.cn/~yuzhang/compiler张昱,陈意云.编译原理实验教程.高等教育出版社,2009.5开发环境与工具(参见实验教程1.3节)Java语言规范(第3版)--JLS3http://java.sun.com/docs/books/jls/Java1.5的文法规范文件:java15.cup,java15.jj抽象语法树:EclipseASTJDTPlug-inDeveloperGuideReferenceAPIReferenceorg.eclipse.jdt.core.domJava开发运行环境:JDK+AntEclipseIDE编译器的自动生成工具:JFlex,JavaCUP(LALR)/JavaCC(LL(k))目标代码的运行:GCC(MinGW),SPIM编译原理实验指导*编译器实现框架编译原理实验指导*实验入门指南—初步了解开发基础EclipseIDE+JDK+ant(实验教程第1章)命令控制台+JDK+ant汇编码的运行:GCC、SPIM自主研发的实验平台及支持库(实验教程第2章及后续章节)实验语言从SimpleMiniJOOL语言(见实验教程2.1节)及其实现入手最终要求实现SkipOOMiniJOOL语言的编译器词法:实验教程3.2节;语法:4.1节;语义:5.1节中间表示EclipseAST:(见实验教程2.4,2.5节)LIR:(见实验教程6.2节)编译原理实验指导*实验入门指南—初步了解目标机X86CISC生成的汇编码能由GCC编译生成可执行文件MIPSRISC生成的汇编码能由SPIM模拟器解释执行汇编码简介:实验教程7.2和7.3节汇编码的内部表示AIR:实验教程7.4节实验软件包:课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 开发包目录编译原理实验指导*课程设计开发包目录实验软件包:实验支持库的构成编译原理实验指导*实验运行平台编译原理实验指导*参见实验教程2.3节目的提供各类编译器组件及组件间信息访问的接口,简称实验平台接口。提供一个实验运行平台,它能够将若干个编译器组件连接装配成一个完整的编译器或解释器并控制它们的运行。用户可以通过平台配置文件灵活地定制待装配的各个编译器组件以及待编译或解释执行的源程序文件等。实验平台接口编译原理实验指导*实验任务(1)每一学生可选的待开发组件组件1:带语义检查的分析器(生成AST)组件2:带语义检查的分析器(生成LIR)组件3:基于AST的x86汇编代码生成器组件4:基于AST的MIPS汇编代码生成器组件5:基于LIR的x86汇编代码生成器组件6:基于LIR的MIPS汇编代码生成器合作伙伴的组合方式组件1+组件3+GCC    组件1+组件4+SPIM组件2+组件5+GCC    组件2+组件6+SPIM编译原理实验指导*实验任务(2)前端任务:组件1或组件2词法分析、语法分析、静态语义分析、中间表示的生成其中涉及符号表的设计与实现后端任务:组件3~组件6之一需要考虑动态语义检查(如数组下标越界)、短路计算、寄存器分配等,但是对代码优化不作要求。独立开发后端时,需要设计和实现符号表生成的x86汇编代码应能直接用gcc汇编连接得到可执行文件,生成的MIPS汇编代码则应能在SPIM上执行若需要使用其他目标平台,必须在6月13日前与张昱老师联系并确认是否可以使用。编译原理实验指导*实验任务(3)最终的编译器自行选择前后端定义好接口,不开放源代码,只提供jar文件和接口 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 ,运行时应能输出作者名你的前端(后端)被采用得越多,则得分越高每个同学只负责自己提交的编译器的质量。组件发布人不必考虑其发布的版本被使用的所有编译器的质量。编译原理实验指导*提交和发布时间节点提交节点5月16提交系统设计书,包括进度表和拟开发的组件5月22前经老师认可学生可调整拟开发的组件5月30提交已完成源代码和前后端接口描述6月13再次提交已完成源代码和进度报告6月20提交源文件、类库文件、测试程序、设计文档等6月22提交课程实践的收获、体会和建议(发邮件给张昱老师)发布节点6月13发布测试程序6月15发布测试环境,对最终提交文档的规定编译原理实验指导*每次提交时需要说明当前的执行进度与 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 中的出入与原因,以及对计划的调整(如果有的话)!课程设计成绩评定(1)评分方式和过程1012个学生一组,大家参与,公开评分评委:1个教师、助教、同组所有同学教师主导测试过程、学生自己动手按老师要求操作,并用投影机当众显示测试过程老师提问,同组同学也可以提问,当众回答问题主要围绕完成的设计和编程,以及测试中暴露出的设计或编程错误编译原理实验指导*课程设计成绩评定(2)评分依据工程的规范性编译器的正确性错误定位与恢复能力所生成的目标代码的质量回答问题时所表现出的对本课程设计所涉及的编译知识的掌握程度对自己设计和编码的编译器和解释器的熟悉程度操作的熟练程度所提交文档的完整性、条理性及其中反映的分析和设计的思想编译原理实验指导*课程设计成绩评定(3)成绩确定每个评委给该组同学排名次,同学评委的排名要包括自己由助教根据所有有效排名表,给出最终的排名由老师根据本组的情况,确定本组的最高分和最低分,依据排名,按等间隔确定每个同学的分数被老师、助教和过半数同学认为所提交文档不是自己课程设计成果时,则0分未按时交也是0分编译原理实验指导*课程设计成绩评定(4)奖惩若所开发的前端(或后端)被多个同学(开发的合作伙伴除外)采用,则在分组评分的基础上加分,加分原则是:1、每增加两个采用者加1分;2、课程设计和平时作业合计不超过50分。独自完成整个编译器,分组评定成绩后降10分前后端人数比例严重失调,抬高少数人一端分数备注成绩评定可能有考虑不周的地方,解释权在老师系统地发现所提供的参考源代码中的错误,给予表彰和奖励编译原理实验指导*编译原理实验指导*实验入门指南—深入学习1开发基础写一个简单的Java程序mydir/src/test.java或者直接利用lab1中的代码lab1/src/…用Eclipse编译和调试尝试按实验教程中1.3.3节介绍的各种方法来建立工程学习在Eclipse下调试和运行在命令控制台下编译和调试用javac编译Java源程序,得到Java字节码用java运行Java字节码写一个ant编译文件(参见实验教程中1.3.4节),用ant来编译和运行Java程序用实验平台运行,熟悉配置文件编译原理实验指导*实验入门指南—深入学习2SkipOOMiniJOOL语言及其AST编写SkipOOMiniJOOL程序目的:了解语言特点,所写程序可以作为测试程序查看SkipOOMiniJOOL程序的AST方法:参见lab3目的:通过AST图形化输出了解一个SkipOOMiniJOOL程序与其AST的对应关系手工构造SimpleMiniJOOL程序的AST方法:参见实验教程第2章,TestCase.java等从小语言入手来学习AST的构造构造AST的一些注意事项关于List类型的实例:可以用java.util.LinkedList(或ArrayList)一个AST节点不能被多棵AST(子树)所引用编译原理实验指导*实验入门指南—深入学习3前端:词法分析+语法分析+语义分析做法使用JFlex+CUP来生成分析器的源码:参见ch4和ch5使用JavaCC来生成分析器的源码:参见ch5手工编写分析器先支持SimpleMiniJOOL,再扩展到SkipOO…语言中的注意点:变量的作用域,同名问题的处理,等等了解AST访问者类、管理符号的一些容器类(如HashMap)、List等等各类符号的描述信息定义符号类、符号表类编译原理实验指导*实验入门指南—深入学习4前端:词法分析+语法分析+语义分析利用分析器的生成工具构造分析器时,先构造简单的语法分析器:不构造AST、不进行错误处理重点:熟悉分析器的生成工具及其 使用方法 消防栓的使用方法指针万用表的使用方法84消毒液使用方法消防灭火器使用方法铁材计算器使用方法 再构造能输出AST的语法分析器,它只能分析正确的源程序重点:熟悉在产生式的语义动作中添加构造AST的代码再构造能处理语法错误并产生AST的语法分析器重点:识别哪些错误?如何处理错误?如何恢复错误?错误信息?以ASTVisitor的实现类为基础实现语义检查重点:符号表的设计,语义检查修改文法规范文件,增加符号表的维护与语义检查动作重点:注意了解语法和语义分析之间的相互影响编译原理实验指导*实验入门指南—深入学习5前端:词法分析+语法分析+语义分析AST->LIR了解LIRAST中的结构到LIR的映射关系编译原理实验指导*实验入门指南—深入学习6后端:由LIR/AST生成x86或MIPS汇编码了解x86/MIPS汇编码及其相关工具(gcc/spim)总结语言的语法结构与汇编码之间的映射关系写出对应的C程序,用gcc编译得到x86汇编码或spim汇编码AST和LIR的表示与使用(见实验教程的第2,6章)了解汇编语言特征配置文件及汇编码的内部表示(见实验教程的第7章)不考虑寄存器分配的代码生成(lab6或lab7中的Generator1.java)考虑寄存器分配的代码生成(lab6或lab7中的Generator2.java/Generator3.java)
本文档为【编译原理实验指导】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
蓉蓉
暂无简介~
格式:ppt
大小:283KB
软件:PowerPoint
页数:0
分类:教育学
上传时间:2021-01-30
浏览量:2