- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程实践安排.ppt
中国科大 编译原理课程设计 课程设计内容 扩展PL/0语言的实现(含编译器和解释器) ? 编译器:把源程序翻译成中间语言程序 ? 解释器:中间语言的解释器 对PL/0语言进行扩展(该扩展已基本完成) 对中间语言进行扩展(由同学自己设计) 把PL/0语言的编译器和解释器升级成扩展PL/0语言的编译器和解释器 编译原理课程设计 PL/0语言介绍 Pascal语言的一个子集,一个小巧的高级语言 只有整数类型 程序结构 ? 有相当完全的可嵌套的分程序(block)结构 ? 分程序中可以有常量定义、变量声明和无参过程声明,过程体又是分程序 语句:赋值语句、条件语句、循环语句、过程调用语句、复合语句和空语句 编译原理课程设计 PL/0语言的扩展 增加像C语言那样的形式为/? …… ?/的注释 增加带else子句的条件语句和exit语句 增加输入输出语句 增加带参数的过程 增加布尔类型、实数类型、数组类型 增加函数类型 分离解释器和编译器为两个独立的程序 必须严格按照“课程实践项目”规定的扩展PL/0的语法和语义 编译原理课程设计 PL/0编译器简介 一遍扫描的编译器,有两个功能 ? 把源程序翻译成中间代码 ? 解释执行中间代码 递归下降的预测分析方法,采用紧急方式的错误恢复 中间语言是一种栈机器代码,其指令有三个域 ? 操作码 f ? 层次差 l ? 多用途a:地址偏移、指令地址或常数等 编译原理课程设计 运行时存储空间的组织和管理 用一维数组s 实现栈式存储分配 每个活动记录中有静态链、 动态链、返回地址 和局部变量 把活动记录栈的栈顶作为计算栈 局部数据 b t 静态链 静态链 动态链 动态链 返回地址 返回地址 局部数据 计算栈 栈增长方向 编译原理课程设计 运行时存储空间的组织和管理 指令有三个域 ? 操作码 f ? 层次差 l ? 多用途a: 地址偏移、指令地址或常数等 向计算栈中压数据指令 lit:将常数装入栈顶的指令 lod:将变量的值装入栈顶的指令 局部数据 b t 静态链 静态链 动态链 动态链 返回地址 返回地址 局部数据 计算栈 栈增长方向 编译原理课程设计 运行时存储空间的组织和管理 指令有三个域 ? 操作码 f ? 层次差 l ? 多用途a: 地址偏移、指令地址或常数等 取计算栈中数据进行计算的指令 opr:一组算术和关系运算的指令 局部数据 b t 静态链 静态链 动态链 动态链 返回地址 返回地址 局部数据 计算栈 栈增长方向 编译原理课程设计 时间安排 4月中旬开始,5月中旬结束 5月10日发布一些测试程序 5月15日24点以前通过网络提交课程设计,提交方式另行通知 提交内容如下,做成一个压缩文件,压缩文件以学号命名,无须分目录 ? 编译器和解释器的源程序 ? 编译器和解释器的可执行程序 ? 介绍自己特色的ppt文件(限5页以内) 评测安排在5月21, 22, 28, 29日四天 编译原理课程设计 程序的测试环境 测试环境:Windows XP平台 不提供任何C或C++的编译工具,没有动态链接库 每个同学测10个程序,同组用同样的测试程序 编译原理课程设计 课程设计成绩评定——评分方式和过程 约12个学生一组(5月16日公布分组名单) 评委:教师、助教、同组所有同学(大家参与,公开评分) 教师主导测试过程、学生自己动手按要求操作,操作过程和结果显示在投影幕布上 老师提问,同组同学也可以提问,当众回答 问题主要围绕完成的设计和编程,以及测试中暴露出的设计或编程错误 编译原理课程设计 课程设计成绩评定——评分依据 编译器和解释器的正确性 所设计的中间代码的合理性 错误定位与恢复能力 编程的规范性 操作的熟练程度 回答问题时所表现出的对本课程设计所涉及的编译知识的掌握程度 对自己设计和编码的编译器和解释器的熟悉程度 提问的数量和质量 编译原理课程设计 课程设计成绩评定——成绩确定 每个评委给该组同学排名次,同学评委的排名要包括自己(评分表必须署名) 由助教根据所有有效排名表,给出最终的排名 由老师根据本组的情况,确定本组的最高分和最低分,依据排名,按等间隔确定每个同学的分数 被老师、助教和过半数同学认为所提交程序不是自己课程设计成果时,则0分 未按时交也是0分 成绩评定方法若有考虑不周之处,解释权在老师 * * * * * * * * * * * * 中国科大
文档评论(0)