编译原理课程设计_第1页
编译原理课程设计_第2页
编译原理课程设计_第3页
编译原理课程设计_第4页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、编译原理课程设计编译原理课程设计 课程设计内容课程设计内容扩展扩展PL/0语言的实现(含编译器和解释器)语言的实现(含编译器和解释器) 编译器:把源程序翻译成中间语言程序编译器:把源程序翻译成中间语言程序 解释器:中间语言的解释器解释器:中间语言的解释器 对对PL/0语言进行扩展(该扩展已基本完成)语言进行扩展(该扩展已基本完成) 对中间语言进行扩展(由同学自己设计)对中间语言进行扩展(由同学自己设计) 把把PL/0语言的编译器和解释器升级成扩展语言的编译器和解释器升级成扩展PL/0语语言的编译器和解释器言的编译器和解释器编译原理课程设计编译原理课程设计 PL/0语言介绍语言介绍 Pascal

2、语言的语言的一个一个子集,一个子集,一个小巧的高级语言小巧的高级语言 只有整数类型只有整数类型 程序结构程序结构 有有相当完全的可嵌套的分程序(相当完全的可嵌套的分程序(block)结构结构 分程序中可以有常量定义、变量声明和无参过分程序中可以有常量定义、变量声明和无参过程声明,过程体又是分程序程声明,过程体又是分程序 语句:语句:赋值语句、条件语句、循环语句、过程调赋值语句、条件语句、循环语句、过程调用语句、复合语句和空语句用语句、复合语句和空语句编译原理课程设计编译原理课程设计 PL/0语言的扩展语言的扩展 增加像增加像C语言那样的形式为语言那样的形式为/ /的注释的注释 增加带增加带el

3、se子句的条件语句和子句的条件语句和exit语句语句 增加输入输出语句增加输入输出语句 增加带参数的过程增加带参数的过程 增加布尔类型增加布尔类型、实数类型实数类型、数组类型数组类型 增加函数类型增加函数类型 分离解释器和编译器为两个独立的程序分离解释器和编译器为两个独立的程序 必须严格按照必须严格按照“课程实践项目课程实践项目”规定的扩展规定的扩展PL/0的语法和语义的语法和语义编译原理课程设计编译原理课程设计 PL/0编译器简介编译器简介 一遍扫描的编译器,有两个功能一遍扫描的编译器,有两个功能 把源程序翻译成中间代码把源程序翻译成中间代码 解释执行解释执行中间代码中间代码 递归下降的预测

4、分析方法,采用紧急方式的错误递归下降的预测分析方法,采用紧急方式的错误恢复恢复 中间语言是一种栈机器代码,其指令有三个域中间语言是一种栈机器代码,其指令有三个域 操作码操作码 f 层次差层次差 l 多用途多用途a:地址偏移、指令地址或常数等地址偏移、指令地址或常数等编译原理课程设计编译原理课程设计 运行时存储空间的组织和管理运行时存储空间的组织和管理 用一维数组用一维数组s 实现栈式存储分配实现栈式存储分配 每个活动记录中有静态链、每个活动记录中有静态链、动态链、返回地址动态链、返回地址和局部变量和局部变量 把活动记录栈的栈顶作为计算栈把活动记录栈的栈顶作为计算栈局部数据局部数据bt静态链静态

5、链静态链静态链动态链动态链动态链动态链返回地址返回地址返回地址返回地址局部数据局部数据计算栈计算栈栈栈增增长长方方向向编译原理课程设计编译原理课程设计 运行时存储空间的组织和管理运行时存储空间的组织和管理 指令有三个域指令有三个域 操作码操作码 f 层次差层次差 l 多用途多用途a: 地址偏移、指令地址或常数等地址偏移、指令地址或常数等 向计算栈中压数据指令向计算栈中压数据指令lit:将常数装入栈顶的指令:将常数装入栈顶的指令lod:将变量的值装入栈顶的指令:将变量的值装入栈顶的指令局部数据局部数据bt静态链静态链静态链静态链动态链动态链动态链动态链返回地址返回地址返回地址返回地址局部数据局部

6、数据计算栈计算栈栈栈增增长长方方向向编译原理课程设计编译原理课程设计 运行时存储空间的组织和管理运行时存储空间的组织和管理 指令有三个域指令有三个域 操作码操作码 f 层次差层次差 l 多用途多用途a: 地址偏移、指令地址或常数等地址偏移、指令地址或常数等 取计算栈中数据进行计算的指令取计算栈中数据进行计算的指令opr:一组算术和关系运算的指令:一组算术和关系运算的指令 局部数据局部数据bt静态链静态链静态链静态链动态链动态链动态链动态链返回地址返回地址返回地址返回地址局部数据局部数据计算栈计算栈栈栈增增长长方方向向编译原理课程设计编译原理课程设计 时间安排时间安排 4月中旬开始,月中旬开始,

7、5月中旬结束月中旬结束 5月月10日发布一些测试程序日发布一些测试程序 5月月15日日24点以前通过网络提交课程设计,提交方点以前通过网络提交课程设计,提交方式另行通知式另行通知 提交内容如下,做成一个压缩文件,压缩文件以提交内容如下,做成一个压缩文件,压缩文件以学号命名,无须分目录学号命名,无须分目录 编译器和解释器的源程序编译器和解释器的源程序 编译器和解释器的可执行程序编译器和解释器的可执行程序 介绍自己特色的介绍自己特色的ppt文件(限文件(限5页以内)页以内) 评测安排在评测安排在5月月21, 22, 28, 29日四天日四天编译原理课程设计编译原理课程设计 程序的测试环境程序的测试

8、环境 测试环境:测试环境:Windows XP平台平台 不提供任何不提供任何C或或C+的编译工具,没有动态链接的编译工具,没有动态链接库库 每个同学测每个同学测10个程序,同组用同样的测试程序个程序,同组用同样的测试程序编译原理课程设计编译原理课程设计 课程设计成绩评定课程设计成绩评定评分方式和过程评分方式和过程 约约12个学生一组(个学生一组(5月月16日公布分组名单)日公布分组名单) 评委:教师、助教、同组所有同学(大家参与,评委:教师、助教、同组所有同学(大家参与,公开评分)公开评分) 教师主导测试过程、学生自己动手按要求操作,教师主导测试过程、学生自己动手按要求操作,操作过程和结果显示

9、在投影幕布上操作过程和结果显示在投影幕布上 老师提问,同组同学也可以提问,当众回答老师提问,同组同学也可以提问,当众回答 问题主要围绕完成的设计和编程,以及测试中暴问题主要围绕完成的设计和编程,以及测试中暴露出的设计或编程错误露出的设计或编程错误编译原理课程设计编译原理课程设计 课程设计成绩评定课程设计成绩评定评分依据评分依据 编译器和解释器的正确性编译器和解释器的正确性 所设计的中间代码的合理性所设计的中间代码的合理性 错误定位与恢复能力错误定位与恢复能力 编程的规范性编程的规范性 操作的熟练程度操作的熟练程度 回答问题时所表现出的对本课程设计所涉及的编回答问题时所表现出的对本课程设计所涉及的编译知识的掌握程度译知识的掌握程度 对自己设计和编码的编译器和解释器的熟悉程度对自己设计和编码的编译器和解释器的熟悉程度 提问的数量和质量提问的数量和质量编译原理课程设计编译原理课程设计 课程设计成绩评定课程设计成绩评定成绩确定成绩确定 每个评委给该组同学排名次,同学评委的排名要每个评委给该组同学排名次,同学评委的排名要包括自己(评分表必须署名)包括自己(评分表必须署名) 由助教根据所有有效排名表,给出最终的排名由助教根据所有有效排名表,给出最终的排名 由老师根据本组的情况,确定本组的最高分和最由老师根据本组的情况,确定本组的最高分和最低分,依据排名,按等间隔

温馨提示

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

评论

0/150

提交评论