编辑: 南门路口 2013-06-08
编译原理实验指导 张昱计算机科学与技术学院中国科学技术大学 合肥2009.

5.13 编译原理实验指导 * 资源 编译原理实验教程及实验软件包http://staff.ustc.edu.cn/~yuzhang/compiler开发环境与工具(参见实验教程1.3节)Java语言规范(第3版)--JLS3http://java.sun.com/docs/books/jls/Java 1.5的文法规范文件:java15.cup,java15.jjEclipse ASTJDT Plug-in Developer GuideReference?API Reference ?org.eclipse.jdt.core.domJDK+Ant Eclipse IDEJFlex,Java CUP(LALR)/JavaCC(LL(k))GCC/SPIM 编译原理实验指导 * 编译器实现框架 编译原理实验指导 * 实验入门指南―初步了解 开发基础Eclipse IDE + JDK + ant命令控制台+JDK + ant汇编码的运行:GCC、SPIM自主研发的实验平台及支持库实验语言SimpleMiniJOOL语言的特点(见实验教程2.1节)SkipOOMiniJOOL语言的特点词法:实验教程3.2节;

语法:4.1节;

语义:5.1节中间表示Eclipse AST:(见实验教程2.4,2.5节)LIR:(见实验教程6.2节) 编译原理实验指导 * 实验入门指南―初步了解 目标机X86 CISC生成的汇编码能由GCC编译生成可执行文件MIPS RISC生成的汇编码能由SPIM模拟器解释执行汇编码简介:实验教程7.2和7.3节汇编码的内部表示AIR(实验教程7.4节) 实验软件包:课程设计开发包目录 编译原理实验指导 * 课程设计开发包目录 实验软件包:实验支持库的构成 编译原理实验指导 * 实验运行平台 编译原理实验指导 * 参见实验教程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月15提交系统设计书,包括进度表和拟开发的组件5月22前 经老师认可学生可调整拟开发的组件5月31提交已完成源代码和前后端接口描述6月10再次提交已完成源代码和进度报告6月20提交源文件、类库文件、测试程序、设计文档等6月22提交课程实践的收获、体会和建议(发邮件给张昱老师) 发布节点6月13发布测试程序6月16发布测试环境,对最终提交文档的规定 编译原理实验指导 * 每次提交时需要说明当前的执行进度与计划中的出入与原因,以及对计划的调整(如果有的话)! 课程设计成绩评定(1) 评分方式和过程10?12个学生一组,大家参与,公开评分评委:1个教师、助教、同组所有同学教师主导测试过程、学生自己动手按老师要求操作,并用投影机当众显示测试过程老师提问,同组同学也可以提问,当众回答问题主要围绕完成的设计和编程,以及测试中暴露出的设计或编程错误 编译原理实验指导 * 课程设计成绩评定(2) 评分依据工程的规范性编译器的正确性错误定位与恢复能力所生成的目标代码的质量 回答问题时所表现出的对本课程设计所涉及的编译知识的掌握程度对自己设计和编码的编译器和解释器的熟悉程度操作的熟练程度所提交文档的完整性、条理性及其中反映的分析和设计的思想 编译原理实验指导 * 课程设计成绩评定(3) 成绩确定每个评委给该组同学排名次,同学评委的排名要包括自己由助教根据所有有效排名表,给出最终的排名由老师根据本组的情况,确定本组的最高分和最低分,依据排名,按等间隔确定每个同学的分数被老师、助教和过半数同学认为所提交文档不是自己课程设计成果时,则0分未按时交也是0分 编译原理实验指导 * 课程设计成绩评定(4) 奖惩若所开发的前端(或后端)被多个同学(开发的合作伙伴除外)采用,则在分组评分的基础上加分,加分原则是:

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题