- 6
- 0
- 约1.93千字
- 约 12页
- 2018-06-30 发布于福建
- 举报
课程的设计安排 Static Enforcement of Security with Types
中国科大 编译原理课程设计 课程设计内容 用Java实现SkipOOMiniJOOL语言的编译器 请见《编译原理试验教程》 /~yuzhang/compiler 语言定义见教程 教程说明了课程设计的环境和工具 教程仔细介绍了词法分析器和语法分析器的设计 教程所提到的一些供参考的源代码 每人完成前端(后端),寻找完成后端(前端)的合作伙伴 编译原理课程设计 前端和后端分工 前端完成词法分析、语法分析、语义检查、语法树生成 前端可参考的数据结构和源代码较多,新的工作主要是符号表管理、语义检查 后端要求由语法树生成x86汇编代码或MIPS汇编代码。生成的x86汇编代码应能直接用gcc汇编连接得到可执行文件,而生成的MIPS汇编代码则应能在SPIM上执行 不需要考虑代码优化 编译原理课程设计 自行选择前后端 定义好接口,不开放源代码,只提供jar文件和接口说明,运行时应能输出作者名 你的前端(后端)被采用得越多,则得分越高 编译原理课程设计 可选择如下组件之一进行开发 ?组件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(在x86架构上运行MIPS汇编程序的模拟器 ) ?组件1:带语义检查的分析器(生成AST) ?组件2:带语义检查的分析器(生成LIR) ?组件3:基于AST的x86汇编代码生成器 ?组件4:基于AST的MIPS汇编代码生成器 ?组件5:基于LIR的x86汇编代码生成器 ?组件6:基于LIR的MIPS汇编代码生成器 编译原理课程设计 时间安排 5月份开始,可在电三楼517机房上机 安排一次课堂辅导(张昱老师):编译器设计答疑(5月10日左右) 6月13日发布测试程序 6月20日24点以前通过网络提交课程设计,提交内容:编写的源代码、类库文件、测试程序、设计文档等;提交方式另行通知 考评安排在6月下旬,具体时间以后通知 编译原理课程设计 课程设计成绩评定——评分方式和过程 10?12个学生一组,大家参与,公开评分 评委:1个教师、助教、同组所有同学 教师主导测试过程、学生自己动手按老师要求操作,并用投影机当众显示测试过程 老师提问,同组同学也可以提问,当众回答 问题主要围绕完成的设计和编程,以及测试中暴露出的设计或编程错误 编译原理课程设计 课程设计成绩评定——评分依据 工程的规范性 编译器的正确性 错误定位与恢复能力 所生成的目标代码的质量 回答问题时所表现出的对本课程设计所涉及的编译知识的掌握程度 对自己设计和编码的编译器和解释器的熟悉程度 操作的熟练程度 所提交文档的完整性、条理性及其中反映的分析和设计的思想 编译原理课程设计 课程设计成绩评定——成绩确定 每个评委给该组同学排名次,同学评委的排名要包括自己 由助教根据所有有效排名表,给出最终的排名 由老师根据本组的情况,确定本组的最高分和最低分,依据排名,按等间隔确定每个同学的分数 被老师、助教和过半数同学认为所提交文档不是自己课程设计成果时,则0分 未按时交也是0分 编译原理课程设计 课程设计成绩评定——奖惩 若所开发的前端(或后端)被多个同学(开发的合作伙伴除外)采用,则在分组评分的基础上加分,加分原则是: 1、每增加两个采用者加1分; 2、课程设计和平时作业合计不超过50分。 独自完成整个编译器,分组评定成绩后降10分 前后端人数比例严重失调,抬高少数人一端分数 编译原理课程设计 备注 5月31及以后的各次提交:学生需要在提交的文档中说明当前的执行进度与原先计划中的出入,对原先计划的调整等 成绩评定可能有考虑不周的地方,解释权在老师 系统地发现所提供的参考源代码中的错误,给予表彰和奖励 提交和发布时间节点 提交节点 5月15 提交系统设计书,含进度表和拟开发组件 5月 31 提交已完成源代码和前后端接口描述 6月10 再次提交已完成源代码和进度报告 6月20 提交源文件、类库文件、测试程序、设计文档等 6月22 提交课程实践的收获、体会和建议(发邮件给张昱老师) 发布节点 6月13 发布测试程序 6月16 发布测试环境,对最终提交文档的规定 *
原创力文档

文档评论(0)