《你可以选择题目难度》由会员分享,可在线阅读,更多相关《你可以选择题目难度(23页珍藏版)》请在金锄头文库上搜索。
1、你可以选择你可以选择题目难度题目难度你可以寻求你可以寻求多方帮助多方帮助但是,你不能但是,你不能不做不做拷贝拷贝编译技术课程设计计算机学院杨海燕题目n根据给定的文法实现编译器,产生中间代码(四元式),生成面向特定体系结构的目标代码。文法n类Pascal、类C语言的文法nPL/0nC0PL/0文法n教材上的文法略做改动n文法说明n具有常量、变量、整数、无数据类型(缺省为整型)、过程(无参数)、赋值语句、if-then-else、while-do/do-while语句、repeat-until语句、过程调用、复合语句、读语句、写语句n示例C0文法n类C语言的文法n文法说明n具有常量、变量、整数、整
2、型、函数(带参数,有/无返回值)、赋值语句、if-then-else、while语句、函数调用、复合语句、读语句、写语句(带字符串),return语句n示例扩充PL/0或C0文法n进行了语法成分上的扩充n文法说明n具有常量、变量、整数、实数、整型、实型、字符型、过程(带参数)、函数(带参数)、赋值语句、if-then-else、while语句、for语句、repeat-until语句、case语句、过程调用、函数调用、复合语句、读语句、写语句(带字符串)n示例扩充PL/0C0代码生成和优化n代码生成n目标体系结构为X86和MIPSn流图、基本块、四元式都要有。采用DAG图表示基本块内部的,需要
3、将DAG图同时用四元式表达n代码生成X86或MIPS汇编码n直接生成机器码的可以获得加分nPL/0注意DISPLAY表或访问链的生成n临时寄存器的申请/使用需要完成(不易掌握)代码生成和优化n基本优化完成:n基本块内部的公共子表达式删除n基本的数据流分析(变量的活性分析,为全局寄存器分配准备)n全局寄存器分配n着色算法n基于访问统计的分配算法n(选作)其他优化,例如复制传播、循环强度削弱等,可以自行选作,成功完成都有加分作业题目1n难度等级:很简单n目标:完成编译器及解释执行程序,解释执行程序对编译器产生的PCODE能解释执行,产生运行结果n文法:PL/0文法(与教材上的文法略有差别)n优化:
4、无n中间代码:无n目标码:PCODEn最高分:65作业题目2n难度等级:较简单n标:完成编译器及解释执行程序,解释执行程序对编译器产生的PCODE能解释执行,产生运行结果n文法:C0文法n优化:无n中间代码:无n目标码:PCODEn最高分:70作业题目3n难度等级:适中n目标:完成编译器及解释执行程序,解释执行程序对编译器产生的PCODE能解释执行,产生运行结果n文法:扩充C0或扩充PL/0文法n优化:无n中间代码:无n目标码:PCODEn最高分:80作业题目4n难度等级:较难n目标:实现编译器,生成X86汇编n文法:C0文法n优化:无n中间代码:四元式n目标码:X86汇编n最高分:89作业题
5、目5n难度等级:很难n目标:实现编译器,生成X86汇编或MIPS汇编n文法:C0文法n优化:基本块内部的公共子表达式删除全局寄存器分配(着色算法)基本的数据流分析(变量的活性分析,为全局寄存器分配准备)n中间代码:四元式n目标码:X86汇编或MIPS汇编n最高分:100作业要求n每人独立完成一份作业n采用递归子程序法进行语法分析,除了难度等级为“很难”的题目允许利用词法分析和语法分析的自动生成工具外,其他难度等级的所有代码要求手工编程实现n可以有图形用户界面n完成以下文档(word文档)n需求说明(应给出语法或语法图)n详细设计(应给出程序结构,各函数的功能描述和调用依赖关系,符号表结构,运行
6、栈结构,出错信息编号及描述等)n操作说明(包括程序安装、环境配置;程序启动后,编译、运行、结果显示等操作的说明)n测试报告(提供至少10个测试程序的源程序及测试结果(其中5个有错误的文件),如有扩充,还需另外提供5个测试程序)n总结感想n用C/C+或Java语言实现n开发环境(Win2K,WinXP)nEclipse3.2,JDK1.4.2nVisualStudio2003作业要求(续)n提交完整的项目/工程文件,在集成开发环境下可编译运行n提交能直接运行的程序包n目录命名及组织n学号_姓名_申优MIPS(如35060501_申优)n源代码n可执行文件n文档n阅读PL/0,PASCAL-S源代
7、码新教学编译器架构考核方案n检查文档内容是否齐全、正确n将对每份作业的源程序进行编译,编译不通过不能得分;不能正常运行,不能得分n每份作业将用自己提交的测试程序和老师准备的5个测试程序进行测试,根据通过的测试点给分,并能根据要求修改测试程序进行测试n回答老师的现场提问n申优的同学参加申优答辩n若发现程序或文档雷同,按作弊处理n文档所占比例20,程序及运行状况所占比例80作业获取和提交nhttp:/作业获取和提交n登录后请修改密码n填写个人信息:联系电话和emailn每人最多两次获取题目(不同难度),以最后一次为准(不保留前一次的记录)n2008年12月8日之后可获取作业题目交流与沟通n在线答疑论坛n同学n助教n老师n联系方式史晓华82338487compiler_杨海燕82317624参考资料n编译原理及编译程序构造第十四章第十五章附录A附录Bn参考书nCompilers:Principles,Techniques,andTools.ByAlfredV.AHO,RaviSETHIandJeffreyD.ULLMANn中文版:编译原理,李建中,姜守旭译,机械工业出版社nAdvancedCompilerDesignandImplementation.ByStevenS.Muchnick.n中文版:高级编译器设计与实现,赵克佳,沈志宇译,机械工业出版社