编译技术课程设计大纲及指导书_第1页
编译技术课程设计大纲及指导书_第2页
编译技术课程设计大纲及指导书_第3页
编译技术课程设计大纲及指导书_第4页
编译技术课程设计大纲及指导书_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编译技术课程设计大纲及指导书实验名称:根据给定的文法完成一个小型编译器。实验目的:本课程设计实验项目的目标是通过实际构造一个完整的编译器,加深对编译器实现原理的理解,了解完整编译系统的构造方法。实验类型:验证型、提高型实验学时:50学时实验描述: 根据各难度的题目的说明,选择一个难度等级,将获得一份随机分配的该难度等级的文法。根据获取的文法实现编译器:1. 难度等级:很简单   目标:完成编译器及解释执行程序,解释执行程序对编译器产生的PCODE能解释执行,产生运行结果    文法:PL/0文法(与教材上的文法略有差别)   

2、; 优化:无  中间代码:无  目标码:PCODE  最高分:652. 难度等级:较简单    目标:完成编译器及解释执行程序,解释执行程序对编译器产生的PCODE能解释执行,产生运行结果     文法:C0文法    优化:无    中间代码:无    目标码:PCODE    最高分:

3、703. 难度等级:适中    目标:完成编译器及解释执行程序,解释执行程序对编译器产生的PCODE能解释执行,产生运行结果    文法:扩充C0或扩充PL/0文法    优化:无    中间代码:无    目标码:PCODE    最高分:804. 难度等级:较难   目标:实现编译器,生成X86汇编  &

4、#160; 文法: C0文法    优化:无  中间代码:四元式目标码:X86汇编最高分:895. 难度等级:很难    目标:实现编译器,生成X86汇编或MIPS汇编  文法: C0文法  优化:基本块内部的公共子表达式删除       全局寄存器分配(着色算法)          基本的数据流分析(变量的活性分析,为全局寄存器分配准备

5、)中间代码:四元式目标码:X86汇编或MIPS汇编 最高分:100实验要求:1. 每人独立完成一份作业2. 采用递归子程序法进行语法分析,除了难度等级为“很难”的题目允许利用词法分析和语法分析的自动生成工具外,其他难度等级的所有代码要求手工编程实现3. 可以有图形用户界面4. 完成以下文档   1) 需求说明(应给出语法或语法图)   2) 详细设计(应给出程序结构,各类、方法(函数)的功能描述和调用依赖关系,符号表结构,运行栈结构,出错信息编号及描述等)   3) 操作说明(包括程序安装、环境配置;程序启动后,编译、运行、

6、结果显示等操作的说明)   4) 测试报告(提供至少10个测试程序的源程序及测试结果(其中5个有错误的文件),如有扩充,还需另外提供5个测试程序)   5) 总结感想( 完成本实验项目后的感想及建议)5. 用C/C+或Java语言实现6. 开发环境(Win2K, WinXP)         Eclipse 3.2,JDK1.5          Visual Studio 20037. 提交完整

7、的项目/工程文件,在集成开发环境下可编译运行,提交能直接运行的程序包8. 目录命名及组织 每份作业组织为如下三个文件夹:    源代码    可执行文件  文档   提交时打包为一个文件,按如下规则命名:  学号_姓名_申优_MIPS.rar(如36060501_×××_申优.rar   36060501_×××.rar 36060501_×××_MIPS.rar)考核:1. 检查文档内

8、容是否齐全、正确2. 将对每份作业的源程序进行编译,编译不通过不能得分;不能正常运行,不能得分3. 每份作业将用自己提交的测试程序和老师准备的5个测试程序进行测试,根据通过的测试点给分,并能根据要求修改测试程序进行测试4. 回答老师的现场提问5. 申优的同学参加申优答辩6. 若发现程序或文档雷同,按作弊处理7. 文档所占比例20,程序及运行状况所占比例80作业获取和提交  1. 访问教学辅助平台,以学号登录,获取和提交作业。  2. 每人最多能两次获取题目(不同难度各允许一次),以最后一次为准(不保留前一次的记录,不能返回到前一次获取的结果),必须按最后一次获取的题目完成作

9、业。   3. 请在规定的时间内上网提交作业,逾期将关闭提交通道。在时间允许范围内可多次提交作业,只保留最后一次。参考资料1. 编译原理及编译程序构造第十四章 第十五章 附录A 附录B  2. 编译原理课程设计,王雷 刘志诚 周晶编著,机械工业出版社   3. Compilers: Principles, Techniques, and Tools. By Alfred V. AHO, Ravi SETHI and Jeffrey D. ULLMAN 中文版:编译原理,李建中,姜守旭译,机械工业出版社4. Advanced Compiler D

10、esign and Implementation. By Steven S. Muchnick. 中文版:高级编译器设计与实现,赵克佳,沈志宇译,机械工业出版社其他说明1.  首次登录请修改密码,务必填写个人联系信息。   2. 直接生成机器码的可以获得加分。 3. 难度等级为“很难”的作业中,可以选择生成MIPS汇编,选择生成MIPS汇编码的同学请在需求和提交作业的文件名中给予说明和标注。   4. 其他优化,例如复制传播、循环强度削弱等,可以自行选作,成功完成都有加分。   5. 只有难度为“很难”的作业才能申优。实验指南:1.

11、由于要采用递归子程序法进行语法分析,对不满足条件的文法要进行等价改写2. 对于扩充的语法成分的语义处理可参考教材第十章和PASCAL-S源代码文档模板: 模板一(附录一) 模板二(附录二)(附录一)编译技术课程设计文 档学号:_姓名:_年 月 日一需求说明1文法说明【说明获取的文法,以及对文法的改写和扩充】2语法图【画出每种语法成分的语法图】3P代码指令【描述采用的P代码指令系统,对每条指令进行说明】二详细设计1程序结构【从总体上描述程序的结构,文字或图示均可】2类/方法/函数功能【描述各类/方法或函数的功能,以及关键算法】3调用依赖关系【说明各类之间的关系,方法/函数之间的调用关系】4符号表结构【图示和文字说明符号表的结构】5运行栈结构【图示和文字说明运行栈的结构】6错误信息描述【说明出错处理方案,以及错误信息的编号和含义】三操作说明1运行环境【说明搭建运行环境的步骤】2操作步骤【详细说明操作步骤或以图示说明】四测试报告1测试程序及测试结果【给出提供的测试程序以及每个程序的测试结果】2测试结果分析【说明测试程序对语法成分的覆盖情况】五总结感想【说明在完成课程设计中的收获、认识和感想】(附录二)编译技术课程设计文 档学号:_姓名:_年 月 日一需求说明【说明实验的要求及实现方案等】二详细设计1程序结构【从总体上描述程序的结构,文字或图示均可】2类/方法/函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论