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