欢迎来到天天文库
浏览记录
ID:14329135
大小:83.50 KB
页数:9页
时间:2018-07-28
《编译技术课程设计大纲及指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《编译技术》课程设计大纲及指导书实验名称:根据给定的文法完成一个小型编译器。实验目的:本课程设计实验项目的目标是通过实际构造一个完整的编译器,加深对编译器实现原理的理解,了解完整编译系统的构造方法。实验类型:验证型、提高型实验学时:50学时实验描述:根据各难度的题目的说明,选择一个难度等级,将获得一份随机分配的该难度等级的文法。根据获取的文法实现编译器:1.难度等级:很简单 目标:完成编译器及解释执行程序,解释执行程序对编译器产生的PCODE能解释执行,产生运行结果 文法:PL/0文法(与教材上的文
2、法略有差别) 优化:无 中间代码:无 目标码:PCODE 最高分:652.难度等级:较简单 目标:完成编译器及解释执行程序,解释执行程序对编译器产生的PCODE能解释执行,产生运行结果 文法:C0文法 优化:无 中间代码:无 目标码:PCODE 最高分:703.难度等级:适中 目标:完成编译器及解释执行程序,解释执行程序对编译器产生的PCODE能解释执行,产生运行结果 文法:扩充C0或扩充PL/0文法 优化:无 中间代码:无
3、目标码:PCODE 最高分:8091.难度等级:较难 目标:实现编译器,生成X86汇编 文法:C0文法 优化:无 中间代码:四元式目标码:X86汇编最高分:892.难度等级:很难 目标:实现编译器,生成X86汇编或MIPS汇编 文法:C0文法 优化:基本块内部的公共子表达式删除 全局寄存器分配(着色算法) 基本的数据流分析(变量的活性分析,为全局寄存器分配准备)中间代码:四元式目标码:X86汇编或MIPS汇编 最高分:100实验要求:1.每人独立完成一
4、份作业2.采用递归子程序法进行语法分析,除了难度等级为“很难”的题目允许利用词法分析和语法分析的自动生成工具外,其他难度等级的所有代码要求手工编程实现3.可以有图形用户界面4.完成以下文档 1)需求说明(应给出语法或语法图) 2)详细设计(应给出程序结构,各类、方法(函数)的功能描述和调用依赖关系,符号表结构,运行栈结构,出错信息编号及描述等) 3)操作说明(包括程序安装、环境配置;程序启动后,编译、运行、结果显示等操作的说明) 4)测试报告(提供至少10个测试程序的源程序及测试结果(其中5个有
5、错误的文件),如有扩充,还需另外提供5个测试程序) 5)总结感想(完成本实验项目后的感想及建议)5.用C/C++或Java语言实现6.开发环境(Win2K,WinXP) Eclipse3.2,JDK1.5 VisualStudio20037.提交完整的项目/工程文件,在集成开发环境下可编译运行,提交能直接运行的程序包8.目录命名及组织每份作业组织为如下三个文件夹: 源代码 可执行文件 文档 提交时打包为一个文件,按如下规则命名: 学号_姓名[_申优][_MIPS]
6、.rar(如36060501_×××_申优.rar 36060501_×××.rar36060501_×××_MIPS.rar)考核:1.检查文档内容是否齐全、正确92.将对每份作业的源程序进行编译,编译不通过不能得分;不能正常运行,不能得分3.每份作业将用自己提交的测试程序和老师准备的5个测试程序进行测试,根据通过的测试点给分,并能根据要求修改测试程序进行测试4.回答老师的现场提问5.申优的同学参加申优答辩6.若发现程序或文档雷同,按作弊处理7.文档所占比例20%,程序及运行状况所占比例80%作业获
7、取和提交 1.访问教学辅助平台,以学号登录,获取和提交作业。 2.每人最多能两次获取题目(不同难度各允许一次),以最后一次为准(不保留前一次的记录,不能返回到前一次获取的结果),必须按最后一次获取的题目完成作业。 3.请在规定的时间内上网提交作业,逾期将关闭提交通道。在时间允许范围内可多次提交作业,只保留最后一次。参考资料1.《编译原理及编译程序构造》第十四章第十五章附录A附录B 2.《编译原理课程设计》,王雷刘志诚周晶编著,机械工业出版社 3.Compilers:Principles,Techni
8、ques,andTools.ByAlfredV.AHO,RaviSETHIandJeffreyD.ULLMAN中文版:编译原理,李建中,姜守旭译,机械工业出版社4.AdvancedCompilerDesignandImplementation.ByStevenS.Muchnick.中文版:高级编译器设计与实现,赵克佳,沈志宇译,机械工业出版社其他说明1. 首次登录请修改密码,务必填写个人联系信息。 2.直接生成机器码的可以获得加分。3.难度
此文档下载收益归作者所有