编译技术课程设计大纲及指导书
更新时间:2024-06-22 23:25:01 阅读量: 综合文库 文档下载
- 华电编译技术课程设计推荐度:
- 相关推荐
《编译技术》课程设计大纲及指导书
实验名称:
根据给定的文法完成一个小型编译器。
实验目的:
本课程设计实验项目的目标是通过实际构造一个完整的编译器,加深对编译器实现原理的理解,了解完整编译系统的构造方法。
实验类型:
验证型、提高型
实验学时:
50学时
实验描述:
根据各难度的题目的说明,选择一个难度等级,将获得一份随机分配的该难度等级的文法。根据获取的文法实现编译器: 1. 难度等级:很简单 目标:完成编译器及解释执行程序,解释执行程序对编译器产生的PCODE能解释执行,产生运行结果
文法:PL/0文法(与教材上的文法略有差别) 优化:无
中间代码:无 目标码:PCODE 最高分:65
2. 难度等级:较简单
目标:完成编译器及解释执行程序,解释执行程序对编译器产生的PCODE能解释执行,产生运行结果 文法:C0文法 优化:无 中间代码:无 目标码:PCODE 最高分:70 3. 难度等级:适中
目标:完成编译器及解释执行程序,解释执行程序对编译器产生的PCODE能解释执行,产生运行结果
文法:扩充C0或扩充PL/0文法 优化:无 中间代码:无 目标码:PCODE 最高分:80
1
4. 难度等级:较难
目标:实现编译器,生成X86汇编 文法: C0文法 优化:无
中间代码:四元式 目标码:X86汇编 最高分:89 5. 难度等级:很难
目标:实现编译器,生成X86汇编或MIPS汇编 文法: C0文法
优化:基本块内部的公共子表达式删除 全局寄存器分配(着色算法)
基本的数据流分析(变量的活性分析,为全局寄存器分配准备)
中间代码:四元式
目标码:X86汇编或MIPS汇编 最高分:100
实验要求:
1. 每人独立完成一份作业
2. 采用递归子程序法进行语法分析,除了难度等级为“很难”的题目允许利用词法分析和语法分析的自动生成工具外,其他难度等级的所有代码要求手工编程实现 3. 可以有图形用户界面 4. 完成以下文档
1) 需求说明(应给出语法或语法图)
2) 详细设计(应给出程序结构,各类、方法(函数)的功能描述和调用依赖关系,符号表结构,运行栈结构,出错信息编号及描述等)
3) 操作说明(包括程序安装、环境配置;程序启动后,编译、运行、结果显示等操作的说明) 4) 测试报告(提供至少10个测试程序的源程序及测试结果(其中5个有错误的文件),如有扩充,还需另外提供5个测试程序)
5) 总结感想( 完成本实验项目后的感想及建议) 5. 用C/C++或Java语言实现 6. 开发环境(Win2K, WinXP) Eclipse 3.2,JDK1.5 Visual Studio 2003
7. 提交完整的项目/工程文件,在集成开发环境下可编译运行,提交能直接运行的程序包
8. 目录命名及组织
每份作业组织为如下三个文件夹: 源代码 可执行文件 文档
提交时打包为一个文件,按如下规则命名: 学号_姓名[_申优][_MIPS].rar(如36060501_×××_申优.rar 36060501_×××.rar 36060501_×××_MIPS.rar)
考核:
1. 检查文档内容是否齐全、正确
2
2. 将对每份作业的源程序进行编译,编译不通过不能得分;不能正常运行,不能得分 3. 每份作业将用自己提交的测试程序和老师准备的5个测试程序进行测试,根据通过的测试点给分,并能根据要求修改测试程序进行测试 4. 回答老师的现场提问 5. 申优的同学参加申优答辩
6. 若发现程序或文档雷同,按作弊处理
7. 文档所占比例20%,程序及运行状况所占比例80%
作业获取和提交
1. 访问教学辅助平台,以学号登录,获取和提交作业。
2. 每人最多能两次获取题目(不同难度各允许一次),以最后一次为准(不保留前一次的记录,不能返回到前一次获取的结果),必须按最后一次获取的题目完成作业。 3. 请在规定的时间内上网提交作业,逾期将关闭提交通道。在时间允许范围内可多次提交作业,只保留最后一次。
参考资料
1. 《编译原理及编译程序构造》第十四章 第十五章 附录A 附录B 2. 《编译原理课程设计》,王雷 刘志诚 周晶编著,机械工业出版社
3. Compilers: Principles, Techniques, and Tools. By Alfred V. AHO, Ravi SETHI and Jeffrey D. ULLMAN
中文版:编译原理,李建中,姜守旭译,机械工业出版社
4. Advanced Compiler Design and Implementation. By Steven S. Muchnick. 中文版:高级编译器设计与实现,赵克佳,沈志宇译,机械工业出版社
其他说明
1. 首次登录请修改密码,务必填写个人联系信息。
2. 直接生成机器码的可以获得加分。
3. 难度等级为“很难”的作业中,可以选择生成MIPS汇编,选择生成MIPS汇编码
的同学请在需求和提交作业的文件名中给予说明和标注。
4. 其他优化,例如复制传播、循环强度削弱等,可以自行选作,成功完成都有加分。 5. 只有难度为“很难”的作业才能申优。
实验指南:
1. 由于要采用递归子程序法进行语法分析,对不满足条件的文法要进行等价改写 2. 对于扩充的语法成分的语义处理可参考教材第十章和PASCAL-S源代码
文档模板:
模板一(附录一) 模板二(附录二)
3
(附录一)
《编译技术》课程设计
文 档
学号:____________________
姓名:____________________
年 月 日
4
一.需求说明
1.文法说明
【说明获取的文法,以及对文法的改写和扩充】
2.语法图
【画出每种语法成分的语法图】
3.P代码指令
【描述采用的P代码指令系统,对每条指令进行说明】
二.详细设计
1.程序结构
【从总体上描述程序的结构,文字或图示均可】
2.类/方法/函数功能
【描述各类/方法或函数的功能,以及关键算法】
3.调用依赖关系
【说明各类之间的关系,方法/函数之间的调用关系】
4.符号表结构
【图示和文字说明符号表的结构】
5.运行栈结构
5
【图示和文字说明运行栈的结构】
6.错误信息描述
【说明出错处理方案,以及错误信息的编号和含义】
三.操作说明
1.运行环境
【说明搭建运行环境的步骤】
2.操作步骤
【详细说明操作步骤或以图示说明】
四.测试报告
1.测试程序及测试结果
【给出提供的测试程序以及每个程序的测试结果】
2.测试结果分析
【说明测试程序对语法成分的覆盖情况】
五.总结感想
【说明在完成课程设计中的收获、认识和感想】
6
(附录二)
《编译技术》课程设计
文 档
学号:____________________
姓名:____________________
7
年 月 日
一.需求说明
【说明实验的要求及实现方案等】
二.详细设计
1.程序结构
【从总体上描述程序的结构,文字或图示均可】
2.类/方法/函数功能
【描述各类/方法或函数的功能,以及关键算法】
3.调用依赖关系
【说明各类之间的关系,方法/函数之间的调用关系】
三.操作说明
1.运行环境
【说明搭建运行环境的步骤】
2.操作步骤
【详细说明操作步骤或以图示说明】
四.测试报告
8
1.测试程序及测试结果
【给出提供的测试程序以及每个程序的测试结果】
2.测试结果分析
【说明测试程序对语法成分的覆盖情况】
五.总结感想
【说明在完成课程设计中的收获、认识和感想】
9
正在阅读:
编译技术课程设计大纲及指导书06-22
2022民主生活会个人对照检查材料素材演讲稿件(最新汇总)04-10
部编版六年级语文上册第二单元 语文园地 教案+实录-精选10-22
麦道夫庞氏骗局疑现中国版 年收益超巴菲特04-10
社会工作导论 第五章 社区工作05-22
V5.1接口应用技术规定 2000 中国电信集团公司技术规定04-10
湖北省黄冈中学2012年高考物理冲刺讲解、练习题、预测题06:第4专题 带电粒子在电场和磁场中的运动(1)05-28
2015新苏教版小学数学六年级下册小升初毕业期末测试卷504-10
施工质量管理制度及措施1110-27
多种图案霓虹灯控制器设计综合课设03-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 指导书
- 大纲
- 编译
- 课程
- 设计
- 技术